sys.database_role_members (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve una fila por cada miembro de cada rol de base de datos. Los usuarios de base de datos, los roles de aplicación y otros roles de base de datos pueden ser miembros de un rol de base de datos. Para agregar miembros a un rol, use la instrucción ALTER ROLE con la ADD MEMBER opción . Únase con sys.database_principals para devolver los nombres de los principal_id valores.

Nombre de la columna Tipo de datos Descripción
role_principal_id int Id. de entidad de seguridad de base de datos del rol.
member_principal_id int Id. de entidad de seguridad de base de datos del miembro.

Permisos

Cualquier usuario puede ver su propia pertenencia a roles. Para ver otras pertenencias a roles, es necesario pertenecer al db_securityadmin rol fijo de base de datos o VIEW DEFINITION a la base de datos.

La visibilidad de los metadatos de las vistas de catálogo se limita a elementos protegibles que un usuario posee o en el que se concedió algún permiso al usuario. Para obtener más información, consulte Metadata Visibility Configuration.

Ejemplo

La consulta siguiente devuelve los miembros de los roles de base de datos.

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;  

Consulte también

Vistas de catálogo de seguridad (Transact-SQL)
Entidades de seguridad (motor de base de datos)
Vistas de catálogo (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)