2014-02-25 93 views
3

我想从我的ASP.Net应用程序中访问系统表。目前,该应用程序使用用户帐户:WebAppClient连接到数据库StudentPortalSQL Server 2012授予从ASP.net访问sys.dm_os_ring_buffers的权限

当我尝试运行下面的查询登录为WebAppClient我得到的错误:

The user does not have permission to perform this action.`

我怎样授予访问权限,使我的用户帐户可以查询该系统表?

这是我的全部查询:

SELECT TOP 1 
    100 - r.SystemIdle AS CPU 
FROM (
    SELECT 
     rx.record.value('(./Record/@id)[1]', 'int') AS record_id, 
     rx.record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int') AS SystemIdle 
    FROM (
     SELECT CONVERT(XML, record) AS record 
     FROM sys.dm_os_ring_buffers 
     WHERE 
      ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR' AND 
      record LIKE '%<SystemHealth>%') AS rx 
    ) AS r 
ORDER BY r.record_id DESC 

回答

2

该用户必须被授予“查看服务器状态”权限查看SYS动态管理视图。

这里是MS KB article.

实际的语句:GRANT View Server STATE TO <user>

+0

,完美的工作,谢谢! –

相关问题