CREATE ROLE (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Cria uma nova função de banco de dados no banco de dados atual.

Convenções de sintaxe de Transact-SQL

Sintaxe

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

role_name
É o nome da função a ser criada.

AUTHORIZATION owner_name
É o usuário de banco de dados ou função que terá a propriedade da nova função. Se nenhum usuário for especificado, a função será de propriedade do usuário que executar CREATE ROLE. O proprietário da função ou qualquer membro de uma função proprietária pode adicionar ou remover membros da função.

Comentários

As funções são protegíveis no nível de banco de dados. Depois de criar uma função, configure as permissões em nível de banco de dados da função usando GRANT, DENY e REVOKE. Para adicionar membros a uma função de banco de dados, use ALTER ROLE (Transact-SQL). Para obter mais informações, veja Funções em nível de banco de dados.

As funções de banco de dados são visíveis nas exibições do catálogo sys.database_role_members e sys.database_principals.

Para obter informações sobre como criar um sistema de permissões, veja Introdução às permissões do mecanismo de banco de dados.

Cuidado

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 do catálogo antigas, 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 mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).

Permissões

Exige a permissão CREATE ROLE no banco de dados, ou a associação na função de banco de dados fixa db_securityadmin. Ao usar a opção de AUTHORIZATION, as seguintes permissões também são necessárias:

  • Para atribuir a propriedade de uma função a outro usuário, requer permissão IMPERSONATE naquele usuário.

  • Para atribuir a propriedade de uma função para outra, requer associação na função de destinatário ou a permissão ALTER nessa função.

  • Para atribuir a propriedade de uma função a uma função de aplicativo é necessária a permissão ALTER na função de aplicativo.

Exemplos

Os seguintes exemplos usam todos o banco de dados AdventureWorks.

a. Criando uma função de banco de dados pertencente a um usuário de banco de dados

O exemplo a seguir cria a função de banco de dados buyers que pertence ao usuário BenMiller.

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B. Criando uma função de banco de dados pertencente a uma função de banco de dados fixa

O exemplo a seguir cria a função de banco de dados auditors que é de propriedade da função de banco de dados fixa db_securityadmin.

CREATE ROLE auditors AUTHORIZATION db_securityadmin;  
GO  

Consulte Também

Entidades (Mecanismo de Banco de Dados)
ALTER ROLE (Transact-SQL)
DROP ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
Guia de Introdução às permissões do mecanismo de banco de dados