sys.server_role_members (Transact-SQL)
Aplica-se a:SQL ServerInstância Gerenciada de SQL do AzureAnalytics Platform System (PDW)
Retorna uma linha para cada membro de cada função de servidor fixa e definida pelo usuário.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
role_principal_id | int | ID do principal do servidor da função. |
member_principal_id | int | ID do principal do servidor do membro. |
Para adicionar ou remover a associação à função de servidor, use a instrução ALTER SERVER ROLE (Transact-SQL).
Permissões
Os logons podem exibir sua própria associação de função de servidor e podem exibir os principal_id dos membros das funções de servidor fixas. Para exibir toda a associação de função de servidor, é necessária a permissão VIEW ANY DEFINITION ou a associação à função de servidor fixa securityadmin .
Os logons também podem exibir associações de função de funções que possuem.
No Banco de Dados SQL do Azure, os membros da função de servidor ##MS_DefinitionReader## podem consultar todas as exibições de catálogo.
Para obter mais informações, consulte Metadata Visibility Configuration.
Exemplos
Os exemplos nesta seção mostram como trabalhar com funções de nível de servidor no Banco de Dados SQL do Azure.
R. Retornar lista de membros da função de servidor
O exemplo a seguir retorna os nomes e IDs das funções e seus membros.
SELECT roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
, server_role_members.member_principal_id AS MemberPrincipalID
, members.name AS MemberPrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id
;
Observação
No Banco de Dados SQL do Azure, logons SQL não são persistentes no sys.server_principals
modo de exibição de catálogo. Portanto, para recuperar a associação de função no nível de servidor no Banco de Dados SQL do Azure, a exibição sys.sql_logins
de catálogo precisa ser associada.
B. Banco de Dados SQL do Azure: listando todas as entidades de segurança (autenticação SQL) que são membros de uma função de nível de servidor
A instrução a seguir retorna todos os membros de qualquer função de nível de servidor fixa usando as exibições do catálogo sys.server_role_members
e sys.sql_logins
. Essa instrução deve ser executada no banco de dados mestre virtual.
SELECT
sql_logins.principal_id AS MemberPrincipalID
, sql_logins.name AS MemberPrincipalName
, roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.sql_logins AS sql_logins
ON server_role_members.member_principal_id = sql_logins.principal_id
;
GO
Confira também
Exibições do Catálogo (Transact-SQL)
Exibições do catálogo de segurança (Transact-SQL)
Funções de nível de servidor
Entidades (Mecanismo de Banco de Dados)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de