sys.database_role_members (Transact-SQL)
Область применения:SQL Server (все поддерживаемые версии)
База данных SQL Azure
Управляемый экземпляр 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)