0
我需要一個查詢,列出可以由特定用戶執行每一個存儲過程,這對我的MSSQL Server 2005的,可以由每個用戶調用列表存儲過程
輸出例如每個用戶:
sa:
sp_MSrepl_startup
sp_MScleanupmergepublisher
administrator:
xp_foo
sp_bar
任何幫助將不勝感激
菲利普
我需要一個查詢,列出可以由特定用戶執行每一個存儲過程,這對我的MSSQL Server 2005的,可以由每個用戶調用列表存儲過程
輸出例如每個用戶:
sa:
sp_MSrepl_startup
sp_MScleanupmergepublisher
administrator:
xp_foo
sp_bar
任何幫助將不勝感激
菲利普
最簡單的將是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用戶有沒有作用的代碼的權利,或嵌套的角色,這會變得非常惡劣迅速...