Sql-Server
SQL Server:如何檢查安全對象
我想做一個 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 視圖的更多資訊,請參閱此內容。