2012-02-01 101 views
1

我希望能夠看到每個數據庫用戶的報告,看看他具有哪些具體的訪問權限,每個數據庫對象。我是一個安全noob,並且問題的一部分是無法訪問甚至查看生產中創建的用戶。用戶權限報告

據我所知,權限可以設置在數據庫對象級別,這些權限可能會被訪問​​角色的成員資格覆蓋或被成員資格帶到拒絕角色。

是否有人知道會產生所有表,SP,視圖等報告的實用程序,以及每個用戶有權訪問的列表,以便我可以輕鬆確定,例如,「誰有SELECT表訪問權限一個?」或者,不那麼隆重,是否有一個查詢可以爲目標對象名稱回答該問題,前提是該實用程序由具有Admin訪問權限的人員運行?

回答

0

該查詢列出數據庫用戶的權限:

SELECT 
    (SELECT name FROM sysusers WHERE uid=tblPermissions.grantee_principal_id) as UserName, 
    permission_name, 
    state_desc, 
    (SELECT name FROM sysobjects WHERE id=tblPermissions.major_id) 
FROM sys.database_permissions AS tblPermissions WHERE major_id >=0