Compartir a través de


sp_addrole (Transact-SQL)

Se aplica a: SQL Server

Crea un rol de base de datos nuevo en la base de datos actual.

Importante

sp_addrole se incluye para la compatibilidad con versiones anteriores de SQL Server y es posible que no se admita en una versión futura. Use CREATE ROLE en su lugar.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

Argumentos

[ @rolename = ] N'rolename'

Nombre del nuevo rol de base de datos. @rolename es sysname, sin ningún valor predeterminado. @rolename debe ser un identificador válido y no debe existir en la base de datos actual.

[ @ownername = ] N'ownername'

Propietario del nuevo rol de base de datos. @ownername es sysname, con un valor predeterminado del usuario en ejecución actual. @ownername debe ser un usuario de base de datos o un rol de base de datos en la base de datos actual.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

Los nombres de los roles de base de datos de SQL Server pueden contener de 1 a 128 caracteres, incluidas letras, símbolos y números. Los nombres de los roles de base de datos no pueden contener un carácter de barra diagonal inversa (\), ser NULLo una cadena vacía ('').

Después de agregar un rol de base de datos, use sp_addrolemember (Transact-SQL) para agregar entidades de seguridad al rol. Cuando GRANTse usan instrucciones , DENYo REVOKE para aplicar permisos al rol de base de datos, los miembros del rol de base de datos heredan esos permisos como si los permisos se aplicaran directamente a sus cuentas.

Nota:

No se pueden crear nuevos roles de servidor. Los roles solo pueden crearse en las bases de datos.

sp_addrole no se puede usar dentro de una transacción definida por el usuario.

Permisos

Debe tener el permiso CREATE ROLE para la base de datos. Si crea un esquema, requiere CREATE SCHEMA en la base de datos. Si @ownername se especifica como un usuario o grupo, requiere IMPERSONATE en ese usuario o grupo. Si @ownername se especifica como un rol, requiere ALTER permiso para ese rol o en un miembro de ese rol. Si el propietario se especifica como rol de aplicación, requiere ALTER permiso para ese rol de aplicación.

Ejemplos

En el ejemplo siguiente se agrega un nuevo rol llamado Managers a la base de datos actual.

EXEC sp_addrole 'Managers';