Autorización - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autorización

En el proceso de autorización, el administrador de la base de datos obtiene información sobre el identificador de autorización del usuario autenticado. El ID de autorización indica qué operaciones de base de datos puede realizar el usuario, incluidos los objetos de la base de datos a los que puede acceder el usuario. Los permisos, que se declaran de forma explícita en Db2, permiten a los usuarios realizar acciones específicas.

Para un ID de autorización, los permisos se pueden conceder en varios niveles:

  • Principal: los permisos principales se otorgan directamente al ID de autorización.

  • Secundario: los permisos secundarios se otorgan a los grupos y roles de los que forma parte el identificador de autorización.

  • Público: el nivel público es un grupo Db2 especial que representa a todos los miembros de la organización.

  • Sensible al contexto: estos permisos se otorgan a un rol de contexto de confianza.

Niveles de autoridad de Db2

Db2 gestiona las autoridades en los siguientes niveles:

  • Nivel de instancia o sistema:SYSADM,,SYSCTRL, SYSMAINT SYSMON

    • Nivel de base de datos: DBADM SQLADM ((EXPLAINWLMADM),), SECADM (ACCESSCTRL), DATAACCESS

      • Nivel de esquema: SCHEMAADM (LOAD)ACCESSCTRL, DATAACCES S

      • Privilegios adicionales a nivel de esquema

Database privilege levels hierarchy showing instance, database, and schema levels with associated permissions.

Db2 admite los siguientes privilegios adicionales a nivel de esquema:

  • SELECTINpermite al usuario recuperar filas de todas las tablas o vistas definidas en el esquema.

  • INSERTINpermite al usuario insertar filas y ejecutar la IMPORT utilidad en todas las tablas o vistas definidas en el esquema.

  • UPDATEINpermite al usuario ejecutar la Update sentencia en todas las tablas o vistas actualizables definidas en el esquema.

  • DELETEINpermite al usuario eliminar filas de todas las tablas o vistas actualizables definidas en el esquema.

  • EXECUTEINpermite al usuario ejecutar todas las funciones, métodos, procedimientos, paquetes o módulos definidos por el usuario y definidos en el esquema.

  • CREATEINpermite al usuario crear objetos dentro del esquema.

  • ALTERINpermite al usuario cambiar los objetos del esquema.

  • DROPINpermite al usuario colocar objetos desde el esquema.

ID de autorización

Un ID de autorización de Db2 consta de lo siguiente:

  • Tipo de ID de autorización

    • Usuario individual (U)

    • Grupo (G)

    • Función (R)

    • Público (P)

  • Valor de ID de autorización

Para la identificación se utiliza un identificador de autorización, al que pueden asociarse las autoridades y los privilegios, además de comprobar la autorización de Db2.

Los siguientes son los términos de identificación de autorización principal que se utilizan habitualmente en Db2:

  • ID de autorización del sistema: ID de autorización que se utiliza para realizar cualquier comprobación de autorización inicial, como comprobar los CONNECT privilegios durante el CONNECT procesamiento.

  • ID de autorización de sesión: el ID de autorización utilizado para cualquier comprobación de autorización de sesión posterior a las comprobaciones iniciales realizadas durante el CONNECT procesamiento. Para ver el valor actual del identificador de autorización de sesión, utilice el registro SESSION_USER especial.

  • ID de autorización de la declaración: el ID de autorización (junto con la autorización secundaria asociada IDs para grupos o funciones) que se utiliza para los requisitos de autorización de una declaración SQL. También se usa para determinar la propiedad del objeto, según corresponda. Puede variar según el tipo de sentencia SQL y el contexto en el que se emite.

Las autoridades y los privilegios se adquieren mediante mecanismos explícitos, como REVOKE las declaraciones GRANT y, o mediante mecanismos implícitos, como el privilegio obtenido a través de la propiedad de un objeto. También se pueden adquirir temporalmente a través de múltiples contextos de procesamiento. Por ejemplo, se le ha dado acceso a una vista, lo que le da acceso implícito a los objetos de esa definición de vista. Además, un EXECUTE privilegio en un paquete le dará acceso a cualquier SQL estático de ese paquete. La otra forma de obtener autoridad y privilegios temporales es mediante el uso de un contexto confiable.

Contexto confiable

Un contexto de confianza es un objeto de base de datos que define una relación de confianza entre la base de datos y un servidor de aplicaciones externo u otro servidor de base de datos. La relación de confianza se basa en los siguientes atributos de confianza:

  • Dirección IP

  • ID de autorización del sistema

  • Nivel de cifrado para la comunicación de datos

Si una conexión coincide con los atributos de confianza de un objeto de contexto de confianza definido, se establece una conexión de confianza. Existen dos tipos de conexiones de confianza:

  • Conexión de confianza implícita: una conexión de confianza implícita permite al usuario heredar un rol que no está disponible para él fuera del ámbito de esa definición de conexión de confianza. Al identificador de autorización de sesión de la conexión se le asigna una pertenencia temporal a un rol que se declara en la definición del contexto de confianza.

    El siguiente diagrama muestra un ejemplo de una conexión de confianza implícita en la que solo se permite la conexión desde una dirección IP.

     

    ""
    1. dbconnroleSe crea el rol y se le concede la conexión a la base de datos. El contexto de confianza ctximpl se crea en función del uso de la conexión authid ABC con la dirección IP 10.10.10.1 y el rol predeterminadodbconnrole.

    2. El usuario ABC puede conectarse a la base de datos desde la dirección IP10.10.10.1.

    3. El usuario no ABC puede conectarse desde la dirección IP10.10.10.2.

  • Conexión de confianza explícita: una conexión de confianza explícita permite a un servidor de aplicaciones de confianza u otro servidor de bases de datos de Db2 cambiar el ID de usuario actual de la conexión existente de manera eficiente. Un servidor de aplicaciones establece la conexión original con una solicitud explícita de confianza. Una vez establecida la confianza, el servidor de aplicaciones puede enviar solicitudes al servidor de bases de datos para cambiar el identificador de autorización de sesión de cualquier nueva unidad de trabajo. El ID que se utiliza para realizar la solicitud de conexión inicial solo necesita CONNECT privilegios en el servidor.

    Las conexiones de confianza explícitas son útiles cuando se tiene un servidor de nivel medio que necesita emitir solicitudes de base de datos en nombre de varios usuarios con diferentes conjuntos de patrones de acceso a varios objetos de la base de datos, como las tablas. El objeto de contexto de confianza creado en el servidor de base de datos permite al servidor de nivel intermedio establecer una conexión de confianza explícita con la base de datos y, a continuación, cambiar el ID de usuario actual de la conexión por el ID de usuario correspondiente sin necesidad de volver a autenticarse en el servidor de base de datos. En función de los privilegios otorgados a los objetos de la base de datos para el identificador de autorización del usuario, el usuario puede seguir realizando operaciones y conservar la identidad real del usuario que realiza cualquier tarea específica.

    En el siguiente diagrama se muestra un ejemplo de una conexión de confianza explícita en la queUSER1,USER2, y USER3 todas se conectan a través de authidAPPID.

    ""
    1. El contexto de confianza ctxexpl se crea en función authid APPID de la conexión mediante la dirección IP 10.10.10.1 de los usuarios USER1USER2, yUSER3.

    2. Los usuarios se conectan a un servidor de nivel medio.

    3. La conexión de confianza se establece medianteAPPID.