查看给定数据库上的所有权限需要什么权限?

查看给定数据库上的所有权限需要什么权限?

什么权限可以授予查看给定数据库上的所有权限的权利?

在我目前的环境中,软件的支持团队需要能够调查权限问题的原因,而不允许自己修改权限。我希望他们能够查看数据库的每个登录名/用户/角色的权限。如果在数据库级别无法实现,那么服务器级别就可以了。

答案1

根据 sys.database_permissions DMV 的文档:

任何用户都可以查看自己的权限。要查看其他用户的权限,需要 VIEW DEFINITION、ALTER ANY USER 或用户的任何权限。要查看用户定义的角色,需要 ALTER ANY ROLE 或角色成员身份(例如公共角色)。

并且,根据用户权限的文档,您可以授予用户视图定义。

但是,如果你使用任何稍微复杂一点的权限,根据我的经验,冒充用户的能力是非常有助于解决此类问题(因为您可以调用诸如fn_my_permissionssys.login_token 和 sys.user_token 之类的东西)。

答案2

这将由查看定义权限。

但是您可能不想允许他们访问您的数据库服务器。
另一种方法是查询数据库的权限,并向他们提供输出。

这可以使用 DMV 或 SQL 查询来完成。以下是一些示例这个 StackOverflow 帖子。

相关内容