0

在 SQL Server 7.0 中,我需要找出哪些用户对特定数据库中的哪些表具有写访问权。

我知道我可以在企业管理器中通过浏览数据库中的每个表并查看授予这些表的访问权限来执行此操作 - 但数据库中有几百个表。由于我只关心少数用户,我宁愿从用户那里接近它。

有没有可以在系统表上运行的查询来实现这一点?通过企业管理器有另一种方法吗?

我所追求的是基本上说的东西:

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

1 回答 1

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

于 2009-10-14T11:52:38.013 回答