Esta sección contiene las mejores prácticas para asegurar una base de datos Oracle.
Para una configuración básica, consulte las instrucciones predeterminadas de creación de base de datos Oracle, que incluyen la creación del usuario 'zabbix' con privilegios completos en la base de datos Zabbix. Este usuario es el propietario de la base de datos y también tiene los privilegios necesarios para modificar la estructura de la base de datos al actualizar Zabbix.
Para mejorar la seguridad, se recomienda crear usuarios de base de datos adicionales con privilegios mínimos. Estos usuarios deben configurarse según el principio de privilegio mínimo, es decir, solo deben tener los privilegios esenciales para realizar las funciones previstas.
El soporte para Oracle DB está obsoleto desde Zabbix 7.0.
Suponiendo que el propietario de la base de datos conectable (PDB) es usr_owner
, se recomienda crear dos usuarios adicionales con los privilegios correspondientes (para las operaciones diarias):
Estos usuarios deben ser creados por el propietario de la PDB (usr_owner
) utilizando los siguientes comandos:
CREATE USER usr_srv IDENTIFIED BY "usr_srv" DEFAULT TABLESPACE "usr_owner" TEMPORARY TABLESPACE temp;
CREATE USER usr_web IDENTIFIED BY "usr_web" DEFAULT TABLESPACE "usr_owner" TEMPORARY TABLESPACE temp;
GRANT CREATE SESSION, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE, SELECT ANY SEQUENCE TO usr_srv;
GRANT CREATE SESSION, DELETE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE, SELECT ANY SEQUENCE TO usr_web;
La restauración y actualización de tablas debe ser realizada por el propietario de la base de datos.
Después de crear los usuarios, continúe con la creación de sinónimos.
El siguiente script crea sinónimos, para que usr_srv
y usr_web
puedan acceder a las tablas en el esquema usr_owner
sin especificar el esquema explícitamente.
BEGIN
FOR x IN (SELECT owner,table_name FROM all_tables WHERE owner ='usr_owner')
LOOP
EXECUTE IMMEDIATE 'CREATE OR REPLACE SYNONYM usr_srv.'|| x.table_name ||' FOR '||x.owner||'.'|| x.table_name;
EXECUTE IMMEDIATE 'CREATE OR REPLACE SYNONYM usr_web.'|| x.table_name ||' FOR '||x.owner||'.'|| x.table_name;
END LOOP;
END;
/
Este script debe ejecutarse cada vez después de que se cree o cambie la estructura de la base de datos de Zabbix (por ejemplo, después de actualizar Zabbix, si se crearon o renombraron algunas tablas).