Sql-Server

SQL Server:如何檢查安全對象

  • May 12, 2010

我想做一個 t-sql 查詢來檢查哪些登錄在伺服器類型安全對像中具有“查看伺服器狀態”權限。如何做到這一點?

這個來自 mssqltips 的查詢沒有顯示:

http://www.mssqltips.com/tip.asp?tip=1718

SELECT prin.[name] [User], sec.state_desc + ' ' + sec.permission_name [Permission]
FROM [sys].[database_permissions] sec
 JOIN [sys].[database_principals] prin
   ON sec.[grantee_principal_id] = prin.[principal_id]
WHERE sec.class = 0
ORDER BY [User], [Permission]; 

您需要檢查伺服器級別的權限。您擁有的查詢在數據庫級別檢查權限。您可以通過使用 sys.server_permissions 和 sys.server_principals 視圖來實現這一點。就像是:

SELECT  pr.*
FROM    sys.server_permissions p
   INNER JOIN sys.server_principals pr ON p.grantee_principal_id = pr.principal_id
WHERE   p.type = 'VWSS'

有關sys.server_permissions 視圖的更多資訊,請參閱此內容。

引用自:https://serverfault.com/questions/121444