我们的开发团队是由政策不允许成为我们的SQL服务器实例的pipe理员。 这个实例是用于开发和testing的。 我想访问这个实例的SQL服务器日志,但你必须是一个pipe理员来打开这些。 是否有一个存储过程或表,pipe理员可以授予访问权限,而不给我pipe理员权限?
我在想如果有一个sp_XXXX的pipe理员可以创build一个存储过程,调用该函数使用自己的权利,只是授予我们的访问权限。 有没有人知道是否有一个SP,表或系统表可以访问的日志?
你是指数据日志还是错误日志?
数据日志可以通过select .. from fn_dblog来读取
错误日志可以使用exec xp_readerrorlog (可以访问sql和代理错误日志)
他们都是无证的,但知道function/程序。 您的pipe理员应该创build一个包装程序,授予您执行该程序的权限,然后使用代码签名将所需的权限授予该程序。 有关如何签署程序的示例,请参阅签署激活程序。
只有当它们存储在默认位置(如C:\ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ LOG)时,您必须是pipe理员才能打开这些文件。 这是一个非常愚蠢的地方来存储它们,不仅因为你必须是pipe理员才能访问它们,而且你也不应该在C:上不断增长文件。 当你的空间用完时,会发生不好的事情。
我在SQL Server安装上做的第一件事情就是将日志移动到我的数据库文件和事务日志所在的同一位置(在一个文件夹中)。 这里有更多的空间,希望它在SAN上或更快的东西,它有希望RAID 10,所以他们更安全,你不必是pipe理员来查看他们。
您可以通过为SQL Server指定-e启动参数来指定日志。
-eF:\mssql\mylog\ERRORLOG (or use whatever location you want)
在SQL Serverconfigurationpipe理器中执行此操作。 右键单击SQL Server(MSSQLSERVER) – >属性 – >高级 – >启动参数
看看这里也http://support.microsoft.com/kb/224071
干杯