0

我创建了 windows 用户组并将这些组添加为 MSSQL 2008 R2 实例的登录名。这些组分配了不同的数据库角色。现在我想确定适用于属于其中一个 windows 组的用户 (x) 的有效角色是什么。

方法是什么?

4

1 回答 1

2

如果您知道用户所在的 Windows 组,则可以在要检查的数据库中使用它:

select p1.name as role, p2.name as member
from sys.database_role_members m
inner join sys.database_principals p1 on m.role_principal_id = p1.principal_id
inner join sys.database_principals p2 on m.member_principal_id = p2.principal_id
order by 1, 2

如果你不这样做,你可以这样做:

-- Impersonate the user
execute as login = '<YourDomain\YourUser>'

-- Check membership
select name as role
from sys.database_principals
where type = 'R' and is_member(name) = 1

-- When ready, revert out of impersonation
revert
于 2013-04-30T10:46:43.113 回答