什么权限可以授予查看给定数据库的所有权限的权利?
在我目前的情况下,一个软件的支持团队需要能够调查权限问题的原因,而不被允许自己修改权限。 我希望他们能够查看数据库的每个login/用户/angular色的权限。 如果在数据库级别是不可能的,服务器级别将起作用。
根据sys.database_permissions DMV的文档说明:
任何用户都可以看到自己的权限。 要查看其他用户的权限,需要使用VIEW DEFINITION,ALTER ANY USER或任何用户权限。 要查看用户定义的angular色,需要ALTER ANY ROLE或angular色中的成员(如public)。
而且,根据用户权限的文档,您可以授予用户的视图定义。
如果你使用任何远程复制你的权限的东西,我会从经验中说,模仿一个用户的能力对于解决这些问题非常有帮助(你可以调用诸如fn_my_permissions
,sys.login_token和sys.user_token之类的东西)。
这将通过VIEW DEFINITION权限获得。
但是,您可能不想让他们访问您的数据库服务器。
另一种方法是查询数据库的权限,并为其提供输出。
这可以使用DMV或SQL查询来完成。 这个StackOverflow后有一些例子。