2014-02-25 94 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

,完美的工作,謝謝! –

相關問題