sys.server_role_members (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed InstanceAnalytics 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)