在SQL Server 7.0中,我需要找出哪些用户对特定数据库中的哪些表具有写访问权。
我知道我可以在Enterprise Manager中执行此操作,方法是遍历数据库中的每个表并查看授予这些表的访问权限 - 但数据库中有几百个表。由于我只关心少数用户,我宁愿从用户那里接近它。
我是否可以在系统表上运行查询来实现此目的?是否有通过企业管理器的方法?
我所追求的是基本上所说的:
UserOne has write access to Table1, Table2 and Table3
UserTwo has write access to Table2 and Table3
etc.
答案 0 :(得分: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(SELECT)+ 2(UPDATE)+ 8(INSERT)+ 16(DELETE)构建
感谢Matt Lacey(以及Google!)让我选择了正确的课程:http://blog.mrlacey.co.uk/2007/06/checking-database-permissions-in-sql.html