DB2 - Seguridad de la base de datos
Este capítulo describe la seguridad de la base de datos.
Introducción
La base de datos y las funciones de DB2 se pueden gestionar mediante dos modos diferentes de controles de seguridad:
- Authentication
- Authorization
Autenticación
La autenticación es el proceso de confirmar que un usuario inicia sesión solo de acuerdo con los derechos para realizar las actividades para las que está autorizado. La autenticación de usuario se puede realizar a nivel de sistema operativo o de base de datos. Mediante el uso de herramientas de autenticación para datos biométricos, como la retina y las impresiones de figuras, se utilizan para mantener la base de datos lejos de piratas informáticos o usuarios malintencionados.
La seguridad de la base de datos se puede gestionar desde fuera del sistema de base de datos db2. A continuación, se muestran algunos tipos de proceso de autenticación de seguridad:
- Basado en autenticaciones del sistema operativo.
- Protocolo ligero de acceso a directorios (LDAP)
Para DB2, el servicio de seguridad es parte del sistema operativo como un producto separado. Para la autenticación, se requieren dos credenciales diferentes, que son ID de usuario o nombre de usuario y contraseña.
Autorización
Puede acceder a la base de datos DB2 y su funcionalidad dentro del sistema de base de datos DB2, que es administrado por el administrador de la base de datos DB2. La autorización es un proceso gestionado por DB2 Database Manager. El administrador obtiene información sobre el usuario autenticado actual, que indica qué operación de base de datos puede realizar o acceder el usuario.
Aquí hay diferentes formas de permisos disponibles para la autorización:
Primary permission: Otorga el ID de autorización directamente.
Secondary permission: Otorga a los grupos y roles si el usuario es miembro
Public permission: Otorga a todos los usuarios públicamente.
Context-sensitive permission: Otorga al rol de contexto de confianza.
Se puede otorgar autorización a los usuarios según las categorías siguientes:
- Autorización a nivel de sistema
- Administrador del sistema [SYSADM]
- Control del sistema [SYSCTRL]
- Mantenimiento del sistema [SYSMAINT]
- Monitor del sistema [SYSMON]
Las autoridades proporcionan control sobre la funcionalidad a nivel de instancia. La autoridad proporciona privilegios al grupo para controlar el mantenimiento y las operaciones de autoridad. Por ejemplo, base de datos y objetos de base de datos.
- Autorización a nivel de base de datos
- Administrador de seguridad [SECADM]
- Administrador de base de datos [DBADM]
- Control de acceso [ACCESSCTRL]
- Acceso a datos [DATAACCESS]
- Administrador de SQL. [SQLADM]
- Administrador de gestión de carga de trabajo [WLMADM]
- Explica [EXPLAIN]
Las autoridades proporcionan controles dentro de la base de datos. Otras autoridades para la base de datos incluyen LDAD y CONNECT.
- Object-Level Authorization: La autorización a nivel de objeto implica la verificación de privilegios cuando se realiza una operación en un objeto.
- Content-based Authorization: El usuario puede tener acceso de lectura y escritura a filas y columnas individuales en una tabla en particular usando el Control de acceso basado en etiquetas [LBAC].
Las tablas y los archivos de configuración de DB2 se utilizan para registrar los permisos asociados con los nombres de autorización. Cuando un usuario intenta acceder a los datos, los permisos registrados verifican los siguientes permisos:
- Nombre de autorización del usuario
- Qué grupo pertenece al usuario
- Qué roles se otorgan directamente al usuario o indirectamente a un grupo
- Permisos adquiridos a través de un contexto de confianza.
Al trabajar con las sentencias SQL, el modelo de autorización de DB2 considera la combinación de los siguientes permisos:
- Permisos otorgados al ID de autorización principal asociado con las sentencias SQL.
- ID de autorización secundarios asociados con las sentencias SQL.
- Otorgado a PUBLIC
- Otorgado al rol de contexto de confianza.
Autoridades de nivel de instancia
Analicemos algunas autoridades relacionadas con la instancia.
Autoridad de administración del sistema (SYSADM)
Es la autoridad administrativa de más alto nivel a nivel de instancia. Los usuarios con autorización SYSADM pueden ejecutar algunas bases de datos y comandos del administrador de bases de datos dentro de la instancia. Los usuarios con autorización SYSADM pueden realizar las siguientes operaciones:
- Actualizar una base de datos
- Restaurar una base de datos
- Actualizar el archivo de configuración del administrador de la base de datos.
Autoridad de control del sistema (SYSCTRL)
Es el nivel más alto en la autoridad de control del sistema. Proporciona la realización de operaciones de mantenimiento y utilidad en la instancia del administrador de bases de datos y sus bases de datos. Estas operaciones pueden afectar los recursos del sistema, pero no permiten el acceso directo a los datos de la base de datos.
Los usuarios con autorización SYSCTRL pueden realizar las siguientes acciones:
- Actualización de la base de datos, el nodo o el directorio del servicio de conexión distribuida (DCS)
- Obligar a los usuarios a salir del nivel del sistema
- Crear o eliminar un nivel de base de datos
- Crear, modificar o eliminar un espacio de tabla
- Usando cualquier espacio de tabla
- Restauración de la base de datos
Autoridad de mantenimiento del sistema (SYSMAINT)
Es un segundo nivel de autoridad de control del sistema. Proporciona la realización de operaciones de mantenimiento y utilidades en la instancia del administrador de bases de datos y sus bases de datos. Estas operaciones afectan los recursos del sistema sin permitir el acceso directo a los datos de la base de datos. Esta autoridad está diseñada para que los usuarios mantengan bases de datos dentro de una instancia del administrador de bases de datos que contiene datos confidenciales.
Solo los usuarios con SYSMAINT o autorizaciones del sistema de nivel superior pueden realizar las siguientes tareas:
- Tomando respaldo
- Restaurando la copia de seguridad
- Recuperación de avance
- Iniciar o detener instancia
- Restaurar espacios de tabla
- Ejecutando el comando db2trc
- Tomar instantáneas del monitor del sistema en caso de un usuario de nivel de instancia o un usuario de nivel de base de datos.
Un usuario con SYSMAINT puede realizar las siguientes tareas:
- Consultar el estado de un espacio de tabla
- Actualizar archivos de historial de registro
- Reorganización de tablas
- Uso de RUNSTATS (estadísticas del catálogo de colecciones)
Autoridad de supervisión del sistema (SYSMON)
Con esta autoridad, el usuario puede monitorear o tomar instantáneas de la instancia del administrador de bases de datos o su base de datos. La autoridad SYSMON permite al usuario ejecutar las siguientes tareas:
- OBTENGA INTERRUPTORES DE MONITOR DEL ADMINISTRADOR DE BASE DE DATOS
- OBTENGA INTERRUPTORES DE MONITOR
- OBTENER UNA INSTANTÁNEA
- LISTA
- LISTAR BASES DE DATOS ACTIVAS
- LISTA DE APLICACIONES
- LISTA DE GRUPOS DE PARTICIÓN DE BASE DE DATOS
- LISTA DE APLICACIONES DE DCS
- LISTA DE PAQUETES
- LISTAR TABLAS
- LISTA DE CONTENEDORES DE MESA
- LIST TABLESPACES
- LISTAR UTITLIDADES
- RESTABLECER MONITOR
- ACTUALIZAR INTERRUPTORES DE MONITOR
Autoridades de base de datos
Cada autoridad de base de datos tiene el ID de autorización para realizar alguna acción en la base de datos. Estas autorizaciones de base de datos son diferentes de los privilegios. Aquí está la lista de algunas autoridades de la base de datos:
ACCESSCTRL: permite otorgar y revocar todos los privilegios de objetos y autorizaciones de bases de datos.
BINDADD: Permite crear un nuevo paquete en la base de datos.
CONNECT: Permite conectarse a la base de datos.
CREATETAB: Permite crear nuevas tablas en la base de datos.
CREATE_EXTERNAL_ROUTINE: Permite crear un procedimiento para ser utilizado por las aplicaciones y los usuarios de las bases de datos.
DATAACCESS: Permite acceder a los datos almacenados en las tablas de la base de datos.
DBADM: Actúa como administrador de la base de datos. Otorga todas las demás autorizaciones de la base de datos excepto ACCESSCTRL, DATAACCESS y SECADM.
EXPLAIN: Permite explicar los planes de consulta sin requerir que tengan privilegios para acceder a los datos de las tablas.
IMPLICIT_SCHEMA: Permite a un usuario crear un esquema implícitamente creando un objeto mediante una instrucción CREATE.
LOAD: Permite cargar datos en la tabla.
QUIESCE_CONNECT: Permite acceder a la base de datos mientras está inactiva (temporalmente deshabilitada).
SECADM: Permite actuar como administrador de seguridad de la base de datos.
SQLADM: Permite monitorear y ajustar declaraciones SQL.
WLMADM: Permite actuar como administrador de cargas de trabajo
Privilegios
SETSESSIONUSER
Los privilegios de ID de autorización implican acciones sobre los ID de autorización. Solo hay un privilegio, llamado privilegio SETSESSIONUSER. Se puede otorgar a un usuario o un grupo y permite que el usuario de la sesión cambie las identidades a cualquiera de los ID de autorización en los que se otorgan los privilegios. Este privilegio lo otorga la autoridad SECADM del usuario.
Privilegios de esquema
Estos privilegios implican acciones sobre el esquema en la base de datos. El propietario del esquema tiene todos los permisos para manipular los objetos del esquema como tablas, vistas, índices, paquetes, tipos de datos, funciones, disparadores, procedimientos y alias. A un usuario, un grupo, un rol o PÚBLICO se le pueden otorgar los siguientes privilegios a cualquier usuario:
- CREATEIN: permite crear objetos dentro del esquema
- ALTERIN: permite modificar objetos dentro del esquema.
ENTRAR UN MOMENTO
Esto permite eliminar los objetos dentro del esquema.
Privilegios de espacio de tabla
Estos privilegios implican acciones en los espacios de tabla de la base de datos. Se puede otorgar al usuario el privilegio USE para los espacios de tabla. Luego, los privilegios les permiten crear tablas dentro de los espacios de tabla. El propietario del privilegio puede otorgar el privilegio USE con el comando WITH GRANT OPTION en el tablespace cuando se crea el tablespace. Y las autoridades SECADM o ACCESSCTRL tienen los permisos para USAR privilegios en el espacio de tabla.
Privilegios de tabla y vista
El usuario debe tener autoridad CONNECT en la base de datos para poder utilizar los privilegios de vista y tabla. Los privilegios para tablas y vistas son los siguientes:
CONTROLAR
Proporciona todos los privilegios para una tabla o vista, incluidos quitar y otorgar, revocar privilegios de tablas individuales al usuario.
ALTERAR
Permite al usuario modificar una tabla.
ELIMINAR
Permite al usuario eliminar filas de la tabla o vista.
ÍNDICE
Permite al usuario insertar una fila en una tabla o vista. También puede ejecutar la utilidad de importación.
REFERENCIAS
Permite a los usuarios crear y soltar una clave externa.
SELECCIONE
Permite al usuario recuperar filas de una tabla o vista.
ACTUALIZAR
Permite al usuario cambiar las entradas en una tabla, ver.
Privilegios de paquete
El usuario debe tener autoridad CONNECT a la base de datos. El paquete es un objeto de base de datos que contiene la información del administrador de la base de datos para acceder a los datos de la manera más eficiente para una aplicación en particular.
CONTROLAR
Proporciona al usuario privilegios de volver a enlazar, soltar o ejecutar paquetes. A un usuario con estos privilegios se le otorgan los privilegios BIND y EXECUTE.
ENLAZAR
Permite al usuario vincular o volver a vincular ese paquete.
EJECUTAR
Permite ejecutar un paquete.
Privilegios de índice
Este privilegio recibe automáticamente el privilegio CONTROL en el índice.
Privilegios de secuencia
La secuencia recibe automáticamente los privilegios USAGE y ALTER en la secuencia.
Privilegios de rutina
Implica la acción de rutinas como funciones, procedimientos y métodos dentro de una base de datos.