首页 > 解决方案 > 如何查找与给定用户关联的数据库角色?

问题描述

在 SSMS 中,我有一个用户,并且X有可用的数据库角色,我如何检查向用户添加了哪些角色?YZPX

我尝试了什么:

在 SSMS 中右键单击 database -> properties -> Permissions 并查看 Explicit tab for a user X。我可以看到角色和用户之间没有关联的权限。我感兴趣的角色也是如此,我只看到角色的权限。

编辑:关于 GUI 解决方案,我没有可供用户或角色使用的属性选项。

在此处输入图像描述

标签: sql-serverssmsroles

解决方案


您可以使用该sys.database_principals对象来找出答案:

SELECT u.[name] AS [UserName],
       r.[name] AS RoleName 
FROM sys.database_principals u
     JOIN sys.database_role_members drm ON u.principal_id = drm.member_principal_id
     JOIN sys.database_principals r ON  drm.role_principal_id = r.principal_id
WHERE u.[type] IN ('S','U') --SQL User or Windows User
  AND u.[name] = N'X';

推荐阅读