Partilhar via


ALTER SERVER ROLE (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure PDW (Sistema de Plataforma de Análise) da Instância Gerenciada de SQL do Azure

Altera a associação de uma função de servidor ou altera nome de uma função de servidor definida pelo usuário. As funções de servidor fixas não podem ser renomeadas.

Convenções de sintaxe de Transact-SQL

Sintaxe

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance
  
ALTER SERVER ROLE server_role_name   
{  
    [ ADD MEMBER server_principal ]  
  | [ DROP MEMBER server_principal ]  
  | [ WITH NAME = new_server_role_name ]  
} [ ; ]  
-- Syntax for Parallel Data Warehouse  
  
ALTER SERVER ROLE  server_role_name  ADD MEMBER login;  
  
ALTER SERVER ROLE  server_role_name  DROP MEMBER login;  

Argumentos

server_role_name

É o nome da função de servidor a ser alterada.

ADD MEMBER server_principal

Adiciona a entidade de segurança do servidor especificado à função de servidor. server_principal pode ser um logon ou uma função de servidor definida pelo usuário. server_principal não pode ser uma função de servidor fixa, uma função de banco de dados nem sa.

DROP MEMBER server_principal

Remove a entidade de segurança de servidor especificada da função de servidor. server_principal pode ser um logon ou uma função de servidor definida pelo usuário. server_principal não pode ser uma função de servidor fixa, uma função de banco de dados nem sa.

WITH NAME =new_server_role_name

Especifica o novo nome da função de servidor definida pelo usuário. Esse nome ainda não pode existir no servidor.

Comentários

A alteração do nome de uma função de servidor definida pelo usuário não altera o número da ID, o proprietário ou as permissões da função.

Para alterar a associação de função, ALTER SERVER ROLE substitui sp_addsrvrolemember e sp_dropsrvrolemember. Esses procedimentos armazenados foram preteridos.

É possível exibir as funções de servidor por meio de consulta das exibições do catálogo sys.server_role_members e sys.server_principals.

Para alterar o proprietário de uma função de servidor definida pelo usuário, use ALTER AUTHORIZATION (Transact-SQL).

No Banco de Dados SQL do Azure, ALTER SERVER ROLE deve ser executado no banco de dados master.

Permissões

Requer a permissão ALTER ANY SERVER ROLE no servidor para alterar o nome de uma função de servidor definida pelo usuário.

Funções fixas de servidor

Para adicionar um membro a uma função de servidor fixa, você deve ser membro dessa função de servidor fixa ou da função de servidor fixa sysadmin.

Observação

As permissões CONTROL SERVER e ALTER ANY SERVER ROLE não são suficientes para executar ALTER SERVER ROLE para uma função de servidor fixa, e a ALTER permissão não pode ser concedida em uma função de servidor fixa.

Funções de servidor definidas pelo usuário

Para adicionar um membro a uma função de servidor definida pelo usuário, você deve ser um membro da função fixa de servidor sysadmin ou ter a permissão CONTROL SERVER ou ALTER ANY SERVER ROLE. Ou você deve ter a permissão ALTER naquela função.

Observação

Ao contrário das funções de servidor fixas, os membros de uma função de servidor definida pelo usuário não têm permissão inerentemente para adicionar membros àquela mesma função.

Exemplos

a. Alterar o nome de uma função de servidor

O exemplo seguinte cria uma função de servidor chamada Product e, em seguida, altera o nome da função de servidor para Production.

CREATE SERVER ROLE Product ;  
ALTER SERVER ROLE Product WITH NAME = Production ;  
GO  

B. Adicionar uma conta de domínio a uma função de servidor

O exemplo a seguir adiciona uma conta de domínio chamada adventure-works\roberto0 à função de servidor definida pelo usuário chamada Production.

ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;  

C. Adicionar um logon do SQL Server a uma função de servidor

O exemplo a seguir adiciona o logon no SQL Server chamado Ted à função fixa de servidor diskadmin.

ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;  
GO  

D. Remover uma conta de domínio de uma função de servidor

O exemplo a seguir remove uma conta de domínio chamada adventure-works\roberto0 da função de servidor definida pelo usuário chamada Production.

ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;  

E. Remover um logon do SQL Server de uma função de servidor

O exemplo a seguir remove o logon no SQL Server Ted da função fixa de servidor diskadmin.

ALTER SERVER ROLE Production DROP MEMBER Ted ;  
GO  

F. Conceder a um logon a permissão para adicionar logons a uma função de servidor definida pelo usuário

O exemplo a seguir permite que Ted adicione outros logons à função de servidor definida pelo usuário chamada Production.

GRANT ALTER ON SERVER ROLE::Production TO Ted ;  
GO  

G. Exibir a associação da função

Para exibir a associação de função, use a página Função de Servidor (Membros) em SQL Server Management Studio ou execute a seguinte consulta:

SELECT SRM.role_principal_id, SP.name AS Role_Name,   
SRM.member_principal_id, SP2.name  AS Member_Name  
FROM sys.server_role_members AS SRM  
JOIN sys.server_principals AS SP  
    ON SRM.Role_principal_id = SP.principal_id  
JOIN sys.server_principals AS SP2   
    ON SRM.member_principal_id = SP2.principal_id  
ORDER BY  SP.name,  SP2.name  

Exemplos: PDW (Analytics Platform System)

H. Adicionar um membro a uma função de servidor

O exemplo a seguir adiciona o logon no Anna à função de servidor LargeRC.

ALTER SERVER ROLE LargeRC ADD MEMBER Anna;  

I. Remover um logon de uma classe de recurso

O exemplo a seguir remove a associação de Ana na função de servidor LargeRC.

ALTER SERVER ROLE LargeRC DROP MEMBER Anna;  

Próximas etapas