我正在使用以下T-SQL从我的SQL Server 2008 R2数据库中获取角色成员:
select rp.name as database_role, mp.name as database_user
from sys.database_role_members drm
join sys.database_principals rp on (drm.role_principal_id = rp.principal_id)
join sys.database_principals mp on (drm.member_principal_id = mp.principal_id)
order by rp.name
Run Code Online (Sandbox Code Playgroud)
当我检查输出时,我注意到列出的唯一角色成员db_datareader是db角色 - db_datareader查询中没有列出任何用户成员.
这是为什么?我怎样才能列出我的数据库角色的用户成员?
我想我也应该问一下这个表是否sys.database_role_members真的包含了一个角色的所有成员?