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

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Crea un rol de base de datos nuevo en la base de datos actual.Creates a new database role in the current database.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

ArgumentosArguments

role_namerole_name
Es el nombre del rol que se va a crear.Is the name of the role to be created.

AUTHORIZATION owner_nameAUTHORIZATION owner_name
Es el usuario o el rol de base de datos que será propietario del nuevo rol.Is the database user or role that is to own the new role. Si no se especifica un usuario, el rol será propiedad del usuario que ejecute CREATE ROLE.If no user is specified, the role will be owned by the user that executes CREATE ROLE. El propietario del rol, o cualquier miembro de un rol propietario, puede agregar o quitar miembros del rol.The owner of the role, or any member of an owning role can add or remove members of the role.

NotasRemarks

Los roles son elementos protegibles de nivel de base de datos.Roles are database-level securables. Después de crear un rol, configure los permisos de nivel de base de datos del rol con GRANT, DENY y REVOKE.After you create a role, configure the database-level permissions of the role by using GRANT, DENY, and REVOKE. Para agregar miembros a un rol de base de datos, use ALTER ROLE (Transact-SQL).To add members to a database role, use ALTER ROLE (Transact-SQL). Para más información, vea Roles de nivel de base de datos.For more information, see Database-Level Roles.

Los roles de base de datos se pueden ver en las vistas de catálogos sys.database_role_members y sys.database_principals.Database roles are visible in the sys.database_role_members and sys.database_principals catalog views.

Para más información acerca de cómo diseñar un sistema de permisos, consulte Getting Started with Database Engine Permissions.For information about designing a permissions system, see Getting Started with Database Engine Permissions.

Precaución

El comportamiento de los esquemas cambió en SQL Server 2005.Beginning with SQL Server 2005, the behavior of schemas changed. En consecuencia, el código que supone que los esquemas son equivalentes a los usuarios de base de datos puede dejar de devolver resultados correctos.As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. No se deben usar vistas de catálogo antiguas, como sysobjects, en una base de datos en la que nunca se ha utilizado ninguna de las instrucciones DDL siguientes: 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. En esas bases de datos, debe usar las nuevas vistas de catálogo.In such databases you must instead use the new catalog views. En las nuevas vistas de catálogo se tiene en cuenta la separación de entidades de seguridad y esquemas que se estableció en SQL Server 2005.The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. Para obtener más información sobre las vistas de catálogo, vea Vistas de catálogo (Transact-SQL).For more information about catalog views, see Catalog Views (Transact-SQL).

PermisosPermissions

Requiere el permiso CREATE ROLE en la base de datos o la pertenencia al rol fijo de base de datos db_securityadmin.Requires CREATE ROLE permission on the database or membership in the db_securityadmin fixed database role. Cuando usa la opción AUTHORIZATION, también se necesitan los siguientes permisos:When you use the AUTHORIZATION option, the following permissions are also required:

  • Asignar la propiedad de un rol a otro usuario requiere el permiso IMPERSONATE para ese usuario.To assign ownership of a role to another user, requires IMPERSONATE permission on that user.

  • Asignar la propiedad de un rol a otro rol requiere la pertenencia al rol receptor o el permiso ALTER para ese rol.To assign ownership of a role to another role, requires membership in the recipient role or ALTER permission on that role.

  • Asignar la propiedad de un rol a un rol de aplicación requiere el permiso ALTER para el rol de aplicación.To assign ownership of a role to an application role, requires ALTER permission on the application role.

EjemplosExamples

En todos estos ejemplos se usa la base de datos AdventureWorks.The following examples all use the AdventureWorks database.

A.A. Crear un rol de base de datos propiedad de un usuario de la base de datosCreating a database role that is owned by a database user

En el siguiente ejemplo se crea el rol de base de datos buyers que es propiedad del usuario BenMiller.The following example creates the database role buyers that is owned by user BenMiller.

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B.B. Crear un rol de base de datos que es propiedad de un rol fijo de base de datosCreating a database role that is owned by a fixed database role

En el siguiente ejemplo se crea el rol de base de datos auditors que es propiedad del rol fijo de base de datos 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 tambiénSee Also

Entidades de seguridad (motor de base de datos) 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)
Introducción a los permisos de los motores de bases de datosGetting Started with Database Engine Permissions