sys.database_role_members (Transact-SQL)

Область применения:yesSQL Server (все поддерживаемые версии) YesБаза данных SQL Azure YesУправляемый экземпляр SQL Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Возвращает одну строку для каждого члена каждой роли базы данных. Пользователи базы данных, роли приложений и другие роли базы данных могут быть членами роли базы данных. Чтобы добавить участников в роль, используйте инструкцию ALTER ROLE с параметром ADD MEMBER . Присоединитесь к sys.database_principals , чтобы вернуть имена значений principal_id .

Имя столбца Тип данных Описание
role_principal_id int Идентификатор участника базы данных роли.
member_principal_id int Идентификатор участника базы данных.

Разрешения

Любой пользователь может просматривать данные о своем членстве в роли. Для просмотра других членства в роли требуется членство в предопределенной db_securityadmin роли базы данных или VIEW DEFINITION в базе данных.

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Пример

Следующий запрос возвращает элементы ролей базы данных.

SELECT DP1.name AS DatabaseRoleName,   
   isnull (DP2.name, 'No members') AS DatabaseUserName   
 FROM sys.database_role_members AS DRM  
 RIGHT OUTER JOIN sys.database_principals AS DP1  
   ON DRM.role_principal_id = DP1.principal_id  
 LEFT OUTER JOIN sys.database_principals AS DP2  
   ON DRM.member_principal_id = DP2.principal_id  
WHERE DP1.type = 'R'
ORDER BY DP1.name;  

См. также

Представления каталога безопасности (Transact-SQL)
Субъекты (компонент Database Engine)
Представления каталога (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)