Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Devolve uma linha para cada membro de cada função de servidor fixa e definida pelo utilizador.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| role_principal_id | int | Server-Principal identificação do cargo. |
| member_principal_id | int | Server-Principal ID do membro. |
Para adicionar ou remover a pertença ao papel do servidor, use a ALTER SERVER ROLE instrução (Transact-SQL).
Permissions
Os logins podem ver a sua própria pertença ao papel de servidor e podem ver as principal_id dos membros dos papéis fixos do servidor. Para visualizar a pertença a todos os papéis de servidor é necessária a VIEW permissão de QUALQUER DEFINIÇÃO ou a pertença ao papel fixo de servidor de administrador de segurança.
Os logins também podem visualizar as pertenças de funções que possuem.
Em Base de Dados SQL do Azure, os membros do servidor-role ##MS_DefinitionReader## podem consultar todas as visualizações de catálogo.
Para obter mais informações, consulte Configuração de visibilidade de metadados.
Examples
Os exemplos nesta seção mostram como trabalhar com funções de nível de servidor no Banco de Dados SQL do Azure.
A. Lista de retorno de membros com função de servidor
O exemplo seguinte devolve os nomes e IDs dos papéis e dos 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
;
Note
No Banco de Dados SQL do Azure, os logons SQL não são persistentes na exibição de sys.server_principals catálogo. Portanto, para recuperar a associação de função de nível de servidor no Banco de Dados SQL do Azure, a exibição sys.sql_logins de catálogo precisa ser associada.
B. Base de Dados SQL do Azure: Lista de todos os princípios (autenticação SQL) que são membros de um papel ao nível do servidor
A instrução a seguir retorna todos os membros de qualquer função fixa de nível de servidor usando as exibições de catálogo sys.server_role_members e sys.sql_logins. Esta instrução tem de ser executada na base 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
Ver também
Visualizações de Catálogo (Transact-SQL)
Vistas do catálogo de segurança (Transact-SQL)
Funções de Nível de Servidor
Principais (Motor de Base de Dados)