CREATE ROLE (Transact-SQL)CREATE ROLE (Transact-SQL)

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Cria uma nova função de banco de dados no banco de dados atual.Creates a new database role in the current database.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

ArgumentosArguments

role_namerole_name
É o nome da função a ser criada.Is the name of the role to be created.

AUTHORIZATION owner_nameAUTHORIZATION owner_name
É o usuário de banco de dados ou função que terá a propriedade da nova função.Is the database user or role that is to own the new role. Se nenhum usuário for especificado, a função será de propriedade do usuário que executar CREATE ROLE.If no user is specified, the role will be owned by the user that executes CREATE ROLE.

RemarksRemarks

As funções são protegíveis no nível de banco de dados.Roles are database-level securables. 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.After you create a role, configure the database-level permissions of the role by using GRANT, DENY, and REVOKE. Para adicionar membros a uma função de banco de dados, use ALTER ROLE (Transact-SQL).To add members to a database role, use ALTER ROLE (Transact-SQL). Para obter mais informações, veja Funções em nível de banco de dados.For more information, see Database-Level Roles.

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.Database roles are visible in the sys.database_role_members and sys.database_principals catalog views.

Para obter informações sobre como criar um sistema de permissões, veja Introdução às permissões do mecanismo de banco de dados.For information about designing a permissions system, see Getting Started with Database Engine Permissions.

Cuidado

A partir do SQL Server 2005, o comportamento de esquemas mudou.Beginning with SQL Server 2005, the behavior of schemas changed. 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.As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 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.Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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.In such databases you must instead use the new catalog views. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005.The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. Para mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).For more information about catalog views, see Catalog Views (Transact-SQL).

PermissõesPermissions

Exige a permissão CREATE ROLE no banco de dados, ou a associação na função de banco de dados fixa db_securityadmin.Requires CREATE ROLE permission on the database or membership in the db_securityadmin fixed database role. Ao usar a opção de AUTHORIZATION, as seguintes permissões também são necessárias:When you use the AUTHORIZATION option, the following permissions are also required:

  • Para atribuir a propriedade de uma função a outro usuário, requer permissão IMPERSONATE naquele usuário.To assign ownership of a role to another user, requires IMPERSONATE permission on that user.

  • 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.To assign ownership of a role to another role, requires membership in the recipient role or ALTER permission on that role.

  • 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.To assign ownership of a role to an application role, requires ALTER permission on the application role.

ExemplosExamples

Os seguintes exemplos usam todos o banco de dados AdventureWorks.The following examples all use the AdventureWorks database.

A.A. Criando uma função de banco de dados pertencente a um usuário de banco de dadosCreating a database role that is owned by a database user

O exemplo a seguir cria a função de banco de dados buyers que pertence ao usuário BenMiller.The following example creates the database role buyers that is owned by user BenMiller.

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B.B. Criando uma função de banco de dados pertencente a uma função de banco de dados fixaCreating a database role that is owned by a fixed database role

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.The following example creates the database role auditors that is owned the db_securityadmin fixed database role.

CREATE ROLE auditors AUTHORIZATION db_securityadmin;  
GO  

Consulte TambémSee Also

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