Partilhar via


sys.database_role_members (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric

Retorna uma linha para cada membro de cada função de banco de dados. Usuários de banco de dados, funções de aplicativo e outras funções de banco de dados podem ser membros de uma função de banco de dados. Para adicionar membros a uma função, use a instrução ALTER ROLE com a ADD MEMBER opção. Junte-se a sys.database_principals para retornar os nomes dos principal_id valores.

Nome da coluna Tipo de dados Descrição
role_principal_id int ID da entidade de segurança do banco de dados da função.
member_principal_id int ID da entidade de segurança do banco de dados do membro.

Permissões

Qualquer usuário pode exibir a própria associação de função. Para exibir associações de outras funções, é necessário que a associação seja na função de banco de dados fixa db_securityadmin ou VIEW DEFINITION no banco de dados.

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplo

A consulta a seguir retorna os membros das funções de banco de dados.

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;  

Confira também

Exibições do catálogo de segurança (Transact-SQL)
Entidades (Mecanismo de Banco de Dados)
Exibições do Catálogo (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)