sys.database_role_members (Transact-SQL)
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Analytics 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)