sys.database_role_members (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в базе данных Microsoft Fabric SQL в 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)