sp_addapprole (Transact-SQL)

Agrega una función de aplicación de la base de datos actual.

Nota importanteImportante

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

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'

Argumentos

  • [ @rolename = ] 'role'
    Es el nombre de la nueva función de aplicación. role es de tipo sysname y no tiene valor predeterminado. role debe ser un identificador válido y no puede ser un identificador que ya exista en la base de datos actual.

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

  • [ @password = ] 'password'
    Es la contraseña requerida para activar la función de aplicación. password es de tipo sysname y no tiene valor predeterminado. password no puede ser NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

En versiones anteriores de SQL Server, los usuarios (y funciones) no se distinguían completamente de los esquemas. A partir de SQL Server 2005, los esquemas son totalmente distintos de las funciones. Esta nueva arquitectura se refleja en el comportamiento de CREATE APPLICATION ROLE. Esta instrucción sustituye a sp_addapprole. Para obtener más información, vea Separación de esquemas de usuario.

Para mantener la compatibilidad con versiones anteriores de SQL Server, sp_addapprole hará lo siguiente:

  • Si no existe un esquema con el mismo nombre que la función de aplicación, se creará dicho esquema. El nuevo esquema será propiedad de la función de aplicación y será el esquema predeterminado de la función de aplicación.

  • Si ya existe un esquema con el mismo nombre que la función de aplicación, el procedimiento generará un error.

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

El parámetro password se almacena como un hash de un sentido.

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

Nota de seguridadNota de seguridad

SqlClient no admite la opción de encrypt de Microsoft ODBC. Cuando pueda, pida a los usuarios que escriban las credenciales de la función 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 de esquema y propietario que la nueva función, también se requiere el permiso CREATE SCHEMA en la base de datos.

Ejemplos

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

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO