我有一个具有服务器查看状态权限SQL Server 2014 Standard Edition (RTM)
的SYSADMIN
角色的用户,但是当我执行 DMV 时sys.dm_os_performance_counters
,它没有返回任何记录。
知道权限有什么问题吗?
@@版本的输出:
Microsoft SQL Server 2014 - 12.0.2000.8 (X64) Feb 20 2014 20:04:26 版权所有 (c) Windows NT 6.3(Build 9600:)上的 Microsoft Corporation Standard Edition(64 位)(Hypervisor)
如果您确定有问题的用户有
View Server State
(并且在您的屏幕截图中看起来他有)。然后有一些原因,以前放到了一个msdn blog中。从:
要解决此问题,我们可以使用指南中概述的相同步骤在不同的堆栈交换帖子中重新安装性能计数器:
使用提升的管理员命令提示符执行以下步骤。
BINN
要更正的 SQL Server 实例的目录。(例如
C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn
:)unlodctr <<REGISTERED SERVER NAME>>
例如:
unlodctr MSSQL$SQL2008
或SQLAgent$SQL2008
...lodctr /T:<<perf-sql* matching the counters you desire to load>>
例如:
perf-MSSQL$SQL2008sqlctr.ini
或者perf-SQLAgent$SQL2008sqlagtctr.ini
对于SQLAgent。将/T
SQL Server 性能计数器提供程序加载为受信任的提供程序很重要。net stop "Remote Registry"
然后net start "Remote Registry"
winmgmt /resyncperfctr "<<PID>>"
使用PID 的进程 ID强制进行 WMI 同步
WinPriv.exe
(您可以从任务管理器中获取)可能还需要以下内容:
确保已向
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
注册表项授予正确的安全权限: