sys.database_role_members (Transact-SQL)
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр SQL Azure
Azure Synapse Analytics Analytics
Platform System (PDW)
Конечная точка SQL в хранилище Microsoft Fabric
в Microsoft Fabric
Возвращает одну строку для каждого члена каждой роли базы данных. Пользователи базы данных, роли приложений и другие роли базы данных могут быть членами роли базы данных. Чтобы добавить членов в роль, используйте инструкцию 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)