Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Un rol de aplicación es una entidad de seguridad de base de datos que permite que una aplicación se ejecute con sus propios permisos de usuario. Puede utilizar los roles 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 los roles de base de datos, los roles de aplicación no contienen miembros y están inactivos de manera predeterminada. Los roles de aplicación se habilitan empleando sp_setapprole, que requiere una contraseña. Debido a que los roles de aplicación son una entidad de seguridad de la base de datos, solo pueden obtener acceso a otras bases de datos por medio de los permisos que se conceden para dichas bases de datos a guest. Por lo tanto, cualquier base de datos en la que el invitado se haya deshabilitado no es accesible para los roles de aplicación de 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 una entidad de seguridad 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 de seguimiento global 4616 mediante -T4616 o DBCC TRACEON (4616, -1)
. Si prefiere no habilitar esta marca de seguimiento, puede usar un procedimiento almacenado firmado por certificado para permitir que los roles de aplicación vean el estado del servidor. Para obtener códigos de ejemplo, consulte este script de ejemplo en GitHub.
Los siguientes pasos muestran el proceso mediante el cual un rol de aplicación cambia de contexto de seguridad:
Un usuario ejecuta una aplicación cliente.
La aplicación cliente se conecta con una instancia de SQL Server como usuario.
A continuación, la aplicación ejecuta el procedimiento almacenado sp_setapprole
con una contraseña conocida solo por la aplicación.
Si el nombre y la contraseña del rol de aplicación son válidos, el rol de aplicación se habilita.
En este momento, la conexión pierde los permisos del usuario y asume los permisos del rol de aplicación.
Los permisos adquiridos durante el rol 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 iniciar un rol de aplicación consiste en desconectarse y volver a conectarse a SQL Server. A partir de SQL Server 2005 (9.x), sp_setapprole
tiene una opción que crea una cookie. La cookie contiene información sobre el contexto anterior al momento en que se habilita el rol de aplicación. A continuación, el procedimiento almacenado sp_unsetapprole
usa la cookie para revertir la sesión a su contexto original. Para obtener información sobre esta nueva opción y un ejemplo, consultesp_setapprole (Transact-SQL) y sp_unsetapprole (Transaction-SQL).
Importante
SqlClient no admite la opción encryptde ODBC. Cuando transmita información confidencial a través de una red, utilice Seguridad de la capa de transporte (TLS), conocida anteriormente como Capa de sockets seguros (SSL), o IPSec para cifrar el canal. Si necesita conservar las credenciales de la aplicación cliente, cífrelas mediante las funciones de la API de criptografía. En SQL Server 2005 (9.x) y versiones posteriores, el parámetro password se almacena como un hash unidireccional.
Tarea | Tipo |
---|---|
Crear 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. | ALTER APPLICATION ROLE (Transact-SQL) |
Eliminar un rol de aplicación. | DROP APPLICATION ROLE (Transact-SQL) |
Usar un rol de aplicación. | sp_setapprole (Transact-SQL) |
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyCursos
Módulo
Configuración de la autenticación y la autorización - Training
Configuración de la autenticación y la autorización
Certificación
Microsoft Certified: Azure Database Administrator Associate - Certifications
Administre una infraestructura de base de datos de SQL Server para bases de datos relacionales locales e híbridas en la nube mediante las ofertas de bases de datos relacionales PaaS de Microsoft.
Documentación
Roles en el nivel de base de datos - SQL Server
SQL Server proporciona varios roles, que son las entidades de seguridad que agrupan otras entidades de seguridad, para administrar los permisos en las bases de datos.
Entidades de seguridad (motor de base de datos) - SQL Server
Obtenga información sobre las entidades de seguridad en el Motor de base de datos, que son entidades que pueden solicitar recursos de SQL Server. Hay entidades de seguridad de nivel de SQL Server y de nivel de bases de datos.
roles de Server-Level - SQL Server
SQL Server proporciona roles de nivel de servidor. Estas entidades de seguridad agrupan a otras entidades de seguridad para administrar los permisos de todo el servidor.