2010-02-25 32 views
0

我需要一個查詢,列出可以由特定用戶執行每一個存儲過程,這對我的MSSQL Server 2005的,可以由每個用戶調用列表存儲過程

輸出例如每個用戶:

sa:

sp_MSrepl_startup

sp_MScleanupmergepublisher

administrator:

xp_foo

sp_bar

任何幫助將不勝感激

菲利普

回答

1

最簡單的將是sp_helprotect但它遺留

這是SQL Server的2005+,但代碼這裏很基本,需要根據需要進行擴展:

SELECT 
    SUSER_SNAME(u.sid), OBJECT_NAME(p.major_id) 
FROM 
    sys.database_permissions p 
    JOIN 
    sys.database_principals u ON p.grantee_principal_id = u.principal_id 

如果DB用戶有沒有作用的代碼的權利,或嵌套的角色,這會變得非常惡劣迅速...

相關問題