2011-10-06 5 views

ответ

-4

Я считаю, что запрос перечисленные ниже, должны перечислить пользователей и роли единой базы данных

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 

Или для всех блоков данных на экземпляре SQL вы можете использовать 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

Не работает в Azure. –

28

взгляды изменились но следующие должны работать против 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

Этот ответ - именно то, что требуется в SQL Azure (для которого помечен вопрос). –