Partilhar via


ALTER ROLE (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric Banco de dados SQL no Microsoft Fabric

Adiciona membros a uma função de banco de dados ou remove membros dela, ou altera o nome de uma função de banco de dados definida pelo usuário.

Observação

Para adicionar ou remover as funções no Azure Synapse Analytics e no PDW (Analytics Platform System), use sp_addrolemember (Transact-SQL) e sp_droprolemember (Transact-SQL).

Convenções de sintaxe de Transact-SQL

Sintaxe

Sintaxe para SQL Server (a partir de 2012), Instância Gerenciada de SQL do Azure, Banco de Dados SQL do Azure e Microsoft Fabric.

ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  

Sintaxe para SQL Server antes de 2012.

-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

Argumentos

role_name
Aplica-se a: SQL Server (do 2008 em diante), Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure

Especifica a função de banco de dados a ser alterada.

ADD MEMBER database_principal
Aplica-se a: SQL Server (do 2012 em diante), Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure

Especifica para adicionar a entidade de segurança do banco de dados à associação de uma função de banco de dados.

  • database_principal é um usuário ou uma função de banco de dados definida pelo usuário.

  • O database_principal não pode ser uma função de banco de dados fixa nem uma entidade de segurança do servidor.

DROP MEMBER database_principal
Aplica-se a: SQL Server (do 2012 em diante), Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure

Especifica para remover uma entidade de segurança do banco de dados da associação a uma função de banco de dados.

  • database_principal é um usuário ou uma função de banco de dados definida pelo usuário.

  • O database_principal não pode ser uma função de banco de dados fixa nem uma entidade de segurança do servidor.

WITH NAME = new_name
Aplica-se a: SQL Server (do 2008 em diante), Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure

Especifica para alterar o nome de uma função de banco de dados definida pelo usuário. O novo nome ainda não deve existir no banco de dados.

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

Permissões

Para executar esse comando, é necessário ter uma ou mais destas permissões ou associações:

  • Permissão ALTER na função
  • Permissão ALTER ANY ROLE no banco de dados
  • Associação à função de banco de dados fixa db_securityadmin

Além disso, para alterar a associação em uma função de banco de dados fixa, você precisa:

  • Associação à função de banco de dados fixa db_owner

Limitações e restrições

Não é possível alterar o nome de uma função de banco de dados fixa.

Metadados

Essas exibições do sistema contêm informações sobre as funções do banco de dados e entidades de segurança do banco de dados.

Exemplos

a. Alterar o nome de uma função de banco de dados

Aplica-se a: SQL Server (do 2008 em diante), Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure

O exemplo a seguir altera o nome da função buyers para purchasing. Este exemplo pode ser executado no banco de dados de exemplo AdventureWorks.

ALTER ROLE buyers WITH NAME = purchasing;  

B. Adicionar ou remover membros da função

Aplica-se a: SQL Server (do 2012 em diante), Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure

Esse exemplo cria uma função de banco de dados chamada Sales. Ele adiciona um usuário de banco de dados chamado Carlos à associação e, em seguida, mostra como remover o membro Carlos. Este exemplo pode ser executado no banco de dados de exemplo AdventureWorks.

CREATE ROLE Sales;  
ALTER ROLE Sales ADD MEMBER Barry;  
ALTER ROLE Sales DROP MEMBER Barry;  

C. Adicionar um membro de função a funções especiais para o Banco de Dados SQL do Azure

Aplica-se a: Banco de Dados SQL do Azure

Este exemplo cria um logon do SQL no banco de dados mestre virtual, cria um usuário do banco de dados relacionado a esse logon do servidor e adiciona o usuário do banco de dados como membro da função especial dbmanager. O exemplo permite que as permissões de usuário criem e removam bancos de dados em um servidor lógico do Banco de Dados SQL do Azure. Execute o exemplo no banco de dados mestre virtual do servidor lógico do Banco de Dados SQL do Azure.

 CREATE LOGIN sqllogin_nlastname WITH password='aah3%#om1os';
    
 CREATE USER sqllogin_nlastname FOR LOGIN sqllogin_nlastname 
 WITH DEFAULT_SCHEMA = master;
    
 ALTER ROLE [dbmanager] add member sqllogin_nlastname;

Consulte Também

CREATE ROLE (Transact-SQL)
Entidades (Mecanismo de Banco de Dados)
DROP ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)