2011-10-06 3 views

Répondre

-4

je crois que la requête ci-dessous devrait énumérer les utilisateurs et les rôles d'une seule base de données

select b.name as USERName, c.name as RoleName from dbo.sysmembers a join dbo.sysusers b on a.memberuid = b.uid join dbo.sysusers c on a.groupuid = c.uid 

Ou pour tous les blocs de données sur une instance de SQL, vous pouvez utiliser sp_MSForEachDB

Exec dbo.sp_MSForEachDB 'select ''?'' as DB, b.name as USERName, c.name as RoleName from dbo.sysmembers a join dbo.sysusers b on a.memberuid = b.uid join dbo.sysusers c on a.groupuid = c.uid' 
+1

Ne fonctionne pas dans Azure. –

28

Les vues ont changé noms, mais ce qui suit devrait fonctionner avec SQL Azure

select m.name as Member, r.name as Role 
from sys.database_role_members 
inner join sys.database_principals m on sys.database_role_members.member_principal_id = m.principal_id 
inner join sys.database_principals r on sys.database_role_members.role_principal_id = r.principal_id 
+1

Cette réponse est exactement ce qui est requis dans SQL Azure (pour lequel la question est balisée). –

Questions connexes