ALTER ROLE (Transact-SQL)
Adiciona membros a uma função de banco de dados ou altera o nome de uma função de banco de dados definida pelo usuário no SQL Server.
Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual). |
Convenções da sintaxe Transact-SQL
Sintaxe
-- SQL Server Syntax
ALTER ROLE role_name
{
[ ADD MEMBER database_principal ]
| [ DROP MEMBER database_principal ]
| WITH NAME = new_name
}
[;]
-- Windows Azure SQL Database Syntax
ALTER ROLE role_name WITH NAME = new_name
[;]
-- Core Syntax (common to all SQL Server versions and SQL Database)
ALTER ROLE role_name WITH NAME = new_name
[;]
Argumentos
role_name
É o nome da função a ser alterada.ADD MEMBER database_principal
Adiciona a entidade do banco de dados especificada à função de banco de dados. database_principal pode ser um usuário ou uma função de banco de dados definida pelo usuário. database_principal não pode ser uma função de banco de dados fixa ou uma entidade de segurança do servidor.Aplica-se a: SQL Server 2012 a SQL Server 2014.
DROP MEMBER database_principal
Remove a entidade de segurança de banco de dados especificada da função de banco de dados. database_principal pode ser um usuário ou uma função de banco de dados definida pelo usuário. database_principal não pode ser uma função de banco de dados fixa ou uma entidade de segurança do servidor.Aplica-se a: SQL Server 2012 a SQL Server 2014.
WITH NAME =new_name
Especifica o novo nome da função definida pelo usuário. Esse nome ainda não deve existir no banco de dados. Não é possível alterar o nome de funções de banco de dados fixas.
Comentários
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.
As funções de banco de dados são visíveis nas exibições de catálogo sys.database_role_members e sys.database_principals.
Aviso
A partir do SQL Server 2005, o comportamento de esquemas mudou. Como resultado, o código que pressupõe que esquemas sejam equivalentes a usuários de banco de dados pode não retornar mais resultados corretos. Exibições antigas do catálogo, incluindo sysobjects, não devem ser usadas em um banco de dados no qual uma das instruções DDL a seguir já tenha sido utilizada: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Nesses bancos de dados você deve usar as exibições do catálogo novas. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005. Para obter mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).
Permissões
Exige a permissão ALTER ANY ROLE no banco de dados, ou a permissão ALTER na função ou a associação no db_securityadmin.
Exemplos
A.Alterando o nome de uma função de banco de dados
O exemplo a seguir altera o nome da função buyers para purchasing.
USE AdventureWorks2012;
ALTER ROLE buyers WITH NAME = purchasing;
GO
B.Adicionando e removendo membros da função
O exemplo a seguir cria uma função chamada Sales, a adiciona e remove um usuário chamado Barry.
Aplica-se a: SQL Server 2012 a SQL Server 2014. |
CREATE ROLE Sales;
ALTER ROLE Sales ADD MEMBER Barry;
ALTER ROLE Sales DROP MEMBER Barry;
Consulte também
Referência
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)