Sql server 确定没有系统管理员权限的所有数据库的用户和角色
我们正在创建一个工具,用于映射所有SQL Server的每个数据库的所有登录名、用户和角色。我们希望定期这样做,并比较结果,以便深入了解变化 最初我们从exec sp_MSloginmappings开始,但是我们需要一个具有sysadmin角色的用户 然后我们查询了Sql server 确定没有系统管理员权限的所有数据库的用户和角色,sql-server,user-roles,Sql Server,User Roles,我们正在创建一个工具,用于映射所有SQL Server的每个数据库的所有登录名、用户和角色。我们希望定期这样做,并比较结果,以便深入了解变化 最初我们从exec sp_MSloginmappings开始,但是我们需要一个具有sysadmin角色的用户 然后我们查询了sys.database\u principles。但是我们只能看到自己的用户,除非我们授予alteranyuser和alteranyrole权限 任何用户都可以看到自己的用户名、系统用户和固定数据库角色。要查看其他用户,需要更改任何
sys.database\u principles
。但是我们只能看到自己的用户,除非我们授予alteranyuser
和alteranyrole
权限
任何用户都可以看到自己的用户名、系统用户和固定数据库角色。要查看其他用户,需要更改任何用户,或对该用户具有权限。要查看用户定义的角色,需要更改任何角色或角色中的成员身份
我们认为<代码>更改任何用户/角色< /代码>权限对于我们的用例来说太过广泛。p> 我们考虑的最后一个选项是创建一个存储过程,通过使用
和EXECUTE as
来查询sys.database\u principles
asdbo
。这是可行的,但要求存储过程存在于每个数据库中。考虑到用例,这也不理想
实现这一目标的好方法是什么
谢谢大家