Partilhar via


sys.server_role_members (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure Analytics 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 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)