没有权限访问SQL Server的perfmon计数器

我的DBA团队无权访问SQL Server 2005标准性能计数器。

什么是他们应该被授予的必要许可? 我发现了一些registry项,但他们已经有了权限。 他们不是操作系统pipe理员。

你说的是sys.dm_os_performance_counters DMV吗?
您需要授予SQL Serverlogin的VIEW SERVER STATE权限。

 GRANT VIEW SERVER STATE to [performance_user] 

这也将使用户账户访问所有其他的DMV,&可能不够精细。 简单地授予视图的SELECT权限不起作用!

如果您想在SQL Server之外执行此操作并使用性能监视器mmc,请查看此MSKB文章。 您将需要修改服务器上的某些文件级权限和registry级权限:

如果systemroot位于NTFS分区上,则必须至less具有以下两个文件的读取权限:

  • %SystemRoot%\System32\Perfc009.dat
  • %SystemRoot%\System32\Perfh009.dat

您必须至less具有对远程计算机上以下registry项的读取权限:

  • HKEYLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
  • HKEYLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

您必须具有对远程计算机上以下registry项的完全访问权限:

  • HKEYLM\SYSTEM\CurrentControlSet\services\servicename\performance

远程registry服务是否在受影响的机器上运行? 此外,为DBA添加域用户帐户(或更好地为DBA创build域组),并将域用户或组添加到本地“性能监视器用户”组。