Partilhar via


CREATE ROLE (Transact-SQL)

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

Ícone de vínculo de tópico Convenções de sintaxe Transact-SQL

Sintaxe

CREATE ROLE role_name [ AUTHORIZATION owner_name ]

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.

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 em uma função de banco de dados, use ALTER ROLE (Transact-SQL). Para obter mais informações, consulte Funções de nível de banco de dados.

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.

Observação sobre cuidadosCuidado

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 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 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

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.

USE AdventureWorks2012;
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.

USE AdventureWorks2012;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO

Consulte também

Referência

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)

Conceitos

Entidades (Mecanismo de Banco de Dados)