sys.server_role_members (Transact-SQL)
Aplica-se a: SQL Server PDW (Sistema de Plataforma de Análise) da Instância Gerenciada de SQL do Azure
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 de 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 as principal_id dos membros das funções de servidor fixas. Para exibir todas as associações de função de servidor, é necessária a permissão ou associação VIEW ANY DEFINITION na 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. Lista de retorno 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, os logons do SQL não são mantidos na exibição do sys.server_principals
catálogo. Portanto, para recuperar a associação de função no nível do servidor no Banco de Dados SQL do Azure, a exibição sys.sql_logins
do catálogo precisa ser ingressada.
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 no nível do 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)