sql-server - 如何查找与给定用户关联的数据库角色?
问题描述
在 SSMS 中,我有一个用户,并且X
有可用的数据库角色,我如何检查向用户添加了哪些角色?Y
Z
P
X
我尝试了什么:
在 SSMS 中右键单击 database -> properties -> Permissions 并查看 Explicit tab for a user X
。我可以看到角色和用户之间没有关联的权限。我感兴趣的角色也是如此,我只看到角色的权限。
编辑:关于 GUI 解决方案,我没有可供用户或角色使用的属性选项。
解决方案
您可以使用该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';
推荐阅读
- excel - Excel 公式获得的价值刚好大于其他公式
- windows - Powershell (5.1) 安装模块或查找模块挂起/阻塞
- javascript - Jquery嵌套的li和ul标签没有点击
- angular - 在 Web Worker 中导入 tensorflow 时出现 Angular 打字稿类型检查问题
- ruby-on-rails - 创建新记录时忽略Rails模型默认值?
- javascript - 如何将文件从 JS 应用程序保存到 iCloud?
- sql - 如何在视图中包含 OPENJSON?
- excel - 搜索第二个工作簿并返回行值
- go - 为什么我的删除对使用 golang gorm 的相关表不起作用?
- office-js - 是否可以使用 Officejs 处理消息读取时的消息正文