sp_addapprole (Transact-SQL)

Se aplica a:SQL Server

Agrega un rol de aplicación a la base de datos actual.

Importante

Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use CREATE APPLICATION ROLE en su lugar.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_addapprole
    [ @rolename = ] N'rolename'
    , [ @password = ] N'password'
[ ; ]

Argumentos

[ @rolename = ] N'rolename'

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

Los nombres de roles de aplicación pueden contener entre 1 y 128 caracteres, y pueden incluir letras, símbolos y números. Los nombres de rol no pueden contener una barra diagonal inversa (\) ni ser NULL ni una cadena vacía ('').

[ @password = ] N'password'

Contraseña necesaria para activar el rol de aplicación. @password es sysname, sin ningún valor predeterminado. @password no puede ser NULL.

Valores de código de retorno

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

Comentarios

En versiones anteriores de SQL Server, los usuarios (y los roles) no son totalmente distintos de los esquemas. A partir de SQL Server 2005 (9.x), los esquemas son totalmente distintos de los roles. Esta arquitectura se refleja en el comportamiento de CREATE APPLICATION ROLE. Esta instrucción reemplaza sp_addapprolea .

Para mantener la compatibilidad con versiones anteriores de SQL Server, sp_addapprole realiza las siguientes comprobaciones:

  • Si aún no existe un esquema con el mismo nombre que el rol de aplicación, se crea el esquema. El nuevo esquema es propiedad del rol de aplicación y es el esquema predeterminado del rol de aplicación.

  • Si ya existe un esquema con el mismo nombre que el rol de aplicación, se produce un error en el procedimiento.

  • sp_addapprole no comprueba la complejidad de la contraseña. La complejidad de la contraseña se comprueba mediante CREATE APPLICATION ROLE.

El parámetro @password se almacena como un hash unidireccional.

El sp_addapprole procedimiento almacenado no se puede ejecutar desde dentro de una transacción definida por el usuario.

Importante

SqlClient no admite la opción ODBC encrypt de Microsoft. Cuando pueda, pida a los usuarios que escriban las credenciales del rol de aplicación en tiempo de ejecución. No guarde las credenciales en un archivo. Si debe conservar las credenciales, cífrelas con las funciones CryptoAPI.

Permisos

Requiere el permiso ALTER ANY APPLICATION ROLE en la base de datos. Si aún no existe un esquema con el mismo nombre y propietario que el nuevo rol, también requiere el permiso CREATE SCHEMA en la base de datos.

Ejemplos

En el ejemplo siguiente se agrega el nuevo rol SalesApp de aplicación con la contraseña x97898jLJfcooFUYLKm387gf3 a la base de datos actual.

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3';
GO