Funciones de aplicación

Una función de aplicación es una entidad de seguridad de base de datos que permite que una aplicación ejecute sus propios privilegios de usuario. Puede utilizar las funciones de aplicación para permitir el acceso a datos específicos únicamente a aquellos usuarios que se conecten a través de una aplicación concreta. A diferencia de las funciones de base de datos, las funciones de aplicación no contienen miembros y están inactivas de manera predeterminada. Las funciones de aplicación funcionan con ambos modos de autenticación. Las funciones de aplicación se activan empleando sp_setapprole, que requiere una contraseña. Debido a que las funciones de aplicación son una entidad de seguridad de la base de datos, sólo pueden obtener acceso a otras bases de datos mediante los permisos que se conceden en dichas bases de datos a guest. Por tanto, cualquier base de datos en la que se haya deshabilitado guest no será accesible para las funciones de aplicación de otras bases de datos.

En SQL Server 2005, las funciones de aplicación no pueden tener acceso a los metadatos de servidor porque no están asociadas a una entidad de seguridad del servidor. Para deshabilitar esta restricción, permitiendo a las funciones de aplicación tener acceso a los metadatos de servidor, defina la marca global 4616. Para obtener más información, vea Marcas de traza (Transact-SQL) y DBCC TRACEON (Transact-SQL).

Conectarse con una función de aplicación

Los siguientes pasos muestran el proceso mediante el cual una función de aplicación cambia de contextos de seguridad:

  1. Un usuario ejecuta una aplicación cliente.
  2. La aplicación cliente se conecta con una instancia de SQL Server como usuario.
  3. A continuación, la aplicación ejecuta el procedimiento almacenado sp_setapprole con una contraseña que sólo conoce la aplicación.
  4. Si el nombre y la contraseña de la función de aplicación son válidos, la función de aplicación se activa.
  5. En este momento, la conexión pierde los permisos del usuario y asume los permisos de la función de aplicación.

Los permisos adquiridos durante la función de aplicación se mantienen mientras dura la conexión.

En versiones anteriores de SQL Server, la única forma de que un usuario vuelva a adquirir su contexto de seguridad original después de activar una función de aplicación es desconectarse y volver a conectarse a SQL Server. En SQL Server 2005, sp_setapprole dispone de una nueva opción que crea una cookie que contiene información de contexto antes de que se active la función de aplicación. sp_unsetapprole puede utilizar la cookie para revertir la sesión a su contexto original. Para obtener información acerca de esta nueva opción y ver un ejemplo, vea sp_setapprole (Transact-SQL).

ms190998.security(es-es,SQL.90).gifNota de seguridad:
La opción encrypt de Microsoft ODBC no es compatible con SqlClient. Cuando esté transmitiendo información confidencial a través de una red, utilice SSL (Capa de sockets seguros) o IPSec para cifrar el canal. Si necesita conservar las credenciales de la aplicación cliente, cífrelas utilizando las funciones de la API de cifrado. En SQL Server 2005, el parámetro password se almacena como un hash de un sentido.

Vea también

Conceptos

Descripción del cambio de contexto

Otros recursos

sp_setapprole (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005