我负责一些测试数据库服务器。从历史上看,太多的其他人可以访问他们。他们在SQL Server 2005上运行。我一直在编写查询并将它们封装在脚本中,以便我可以定期对权限进行审计。找出哪些用户对服务器本身具有管理员权限是没有问题的,因为发现谁在登录时拥有“sysadmin”角色 - 这是后者的单行查询。如何编写SQL查询以查明哪些登录已被授予Sql Server 2005中的哪些权限?
但如何找出哪些登录有用户映射到特定的(或任何)数据库?我可以找到sys.database_principals和sys.server_principals表。我找到了sys.databases表。我还没有弄清楚如何找出哪些用户对数据库有权限,如果是这样的话,是什么。每个Google搜索都会使用“登录”对话框的“用户映射”窗格手动启动人员,而不是使用查询来执行此操作。有任何想法吗?
大卫,我认为你在钱上。我明天开始工作时需要测试一下。将更新这个问题。非常感谢! – 2008-09-15 20:42:33