2009-10-14 131 views
0

在SQL Server 7.0中,我需要找出哪些用戶有權訪問特定數據庫中的哪些表。SQL Server:找出哪些用戶對哪些表有寫權限?

我知道我可以在企業管理器中通過瀏覽數據庫中的每個表並查看授予這些表的訪問權限 - 但數據庫中有幾百個表。由於我只關注少數用戶,我寧願從用戶那裏接觸它。

有沒有我可以在系統表上運行的查詢來實現這個功能?是否有另一種方法通過企業管理器?

我後是什麼,基本上說:

UserOne has write access to Table1, Table2 and Table3 
UserTwo has write access to Table2 and Table3 
etc. 

回答

2
SELECT u.name, o.name 
FROM syspermissions p, sysobjects o, sysusers u 
WHERE p.id = o.id 
AND u.uid = p.grantee 
AND u.name IN ('UserOne', 'UserTwo', 'UserThree') 
AND o.xtype = 'U' 
AND p.actadd = 27 

魔術27從1(選擇)+ 2(UPDATE)內置+ 8(INSERT)+ 16(DELETE)

感謝Matt Lacey(和Google!)爲我設置了正確的路線:http://blog.mrlacey.co.uk/2007/06/checking-database-permissions-in-sql.html

相關問題