Compartir a través de


Roles de la aplicación

Un rol de aplicación es una entidad de seguridad en la base de datos que permite a una aplicación ejecutar con permisos propios similares a los de un usuario. Puede usar roles de aplicación para habilitar el acceso a datos específicos solo a los usuarios que se conectan a través de una aplicación determinada. A diferencia de los roles de base de datos, los roles de aplicación no contienen miembros y están inactivos de forma predeterminada. Los roles de aplicación funcionan con ambos modos de autenticación. Los roles de aplicación se habilitan mediante sp_setapprole, lo que requiere una contraseña. Dado que los roles de aplicación son un principal de nivel de base de datos, solo pueden acceder a otras bases de datos a través de permisos concedidos en esas bases de datos a guest. Por lo tanto, cualquier base de datos en la que se haya deshabilitado el invitado será inaccesible para los roles de aplicación en otras bases de datos.

En SQL Server, los roles de aplicación no pueden acceder a los metadatos de nivel de servidor porque no están asociados a un principal de nivel de servidor. Para deshabilitar esta restricción y, por tanto, permitir que los roles de aplicación accedan a los metadatos de nivel de servidor, establezca la marca global 4616. Para obtener más información, vea Marcas de seguimiento (Transact-SQL) y DBCC TRACEON (Transact-SQL).

Conexión con un rol de aplicación

Los pasos siguientes componen el proceso por el que un rol de aplicación cambia los contextos de seguridad:

  1. Un usuario ejecuta una aplicación cliente.

  2. La aplicación cliente se conecta a una instancia de SQL Server como usuario.

  3. A continuación, la aplicación ejecuta el sp_setapprole procedimiento almacenado con una contraseña conocida solo para la aplicación.

  4. Si el nombre del rol de aplicación y la contraseña son válidos, el rol de aplicación está habilitado.

  5. En este momento, la conexión pierde los permisos del usuario y asume los permisos del rol de aplicación.

Los permisos adquiridos a través del rol de aplicación permanecen en vigor durante la duración de la conexión.

En versiones anteriores de SQL Server, la única manera de que un usuario vuelva a adquirir su contexto de seguridad original después de iniciar un rol de aplicación es desconectar y volver a conectarse a SQL Server. A partir de SQL Server 2005, sp_setapprole tiene una opción que crea una cookie. La cookie contiene información de contexto antes de habilitar el rol de aplicación. La cookie se puede usar mediante sp_unsetapprole para revertir la sesión a su contexto original. Para obtener información sobre esta nueva opción y un ejemplo, vea sp_setapprole (Transact-SQL).

Importante

SqlClient no admite la opción de cifrado ODBC. Cuando esté transmitiendo información confidencial a través de una red, use Secure Sockets Layer (SSL) o IPsec para cifrar el canal. Si debe conservar las credenciales en la aplicación cliente, cifre las credenciales mediante las funciones de API criptográficas. En SQL Server 2005 y versiones posteriores, la contraseña del parámetro se almacena como un hash unidireccional.

Cree un rol de aplicación. Creación de un rol de aplicación y CREATE APPLICATION ROLE (Transact-SQL)
Modificar un rol de aplicación. ALTERAR ROL DE APLICACIÓN (Transact-SQL)
Borre un rol de aplicación. ELIMINAR ROL DE APLICACIÓN (Transact-SQL)
Utilización de un rol en una aplicación sp_setapprole (Transact-SQL)

Véase también

Proteger SQL Server