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)