我正在维护一个使用 SQL Server 8.0.760 SP3 运行的应用程序。
当我尝试“查看”我登录的当前用户的权限时,我会这样做:
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
但是,服务器返回此错误消息:
Msg 208, Level 16, State 1, Line 1
Invalid object name 'fn_my_permissions'.
如果我尝试以下查询:SELECT * FROM dbo.fn_my_permissions(NULL, 'SERVER');
,我会收到相同的错误消息。
如何列出所有当前用户权限?
前一段时间我不得不为一些合规报告编写权限审计,现在我已经将该报告集成到我的管理数据库脚本套件中。
我为您在 pastebin 中放置了生成报告的过程的副本,并且我验证了它仍然可以与 SQL Server 2000 一起使用。
http://pastebin.com/08krN7jf
它在树视图中生成报告,首先列出登录名和默认数据库,然后是任何服务器级别的角色,然后是任何数据库角色和明确授予的权限。
编辑直接在回复中添加实际代码而不是依赖 pastebin 链接
感谢这个线程:“如何在 sql server 2000 中检查登录用户权限”,我设法查看了当前用户权限。
我运行以下查询: