If you're sure the user in question has View Server State (and it looks like in your screenshot he does).
Then there are a number of reasons previously put into an msdn blog. Ranging from:
- Performance Objects and counters set-up during the SQL Server installation failed.
- A mixture of 64 and 32 bit platforms.
- Registry permissions have been skewed
To resolve this we can use the same steps outlined in the guidelines for reinstalling the performance counters in a different stack-exchange post:
Using an elevated administrator command prompt perform the following steps.
- Change the path to the
BINN directory of the SQL Server instance you desire to correct.
(Ex: C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn)
- Execute
unlodctr <<REGISTERED SERVER NAME>>
For example: unlodctr MSSQL$SQL2008 or SQLAgent$SQL2008 ...
- Execute
lodctr /T:<<perf-sql* matching the counters you desire to load>>
For example: perf-MSSQL$SQL2008sqlctr.ini or perf-SQLAgent$SQL2008sqlagtctr.ini for SQLAgent. The /T is important to load the SQL Server performance counter provider as a trusted provider.
- Cycle the remote registry service:
net stop "Remote Registry" then net start "Remote Registry"
- Force a WMI synchronization using
winmgmt /resyncperfctr "<<PID>>"
where PID is the process id of the WinPriv.exe (you can get this from Task Manager)
The following may also be required: