sys.database_role_members (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

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

Имя столбца Тип данных Description
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)
Субъекты (ядро СУБД)
Представления каталога (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)