#3 Oracle

Vista general

Aquesta secció conté les bones pràctiques per configurar una base de dades Oracle d'una manera segura.

Per a una configuració típuca, es recomana seguir les instruccions predeterminades de creació de bases de dades d'Oracle, que inclouen la creació de l'usuari 'zabbix' amb privilegis complets a la base de dades Zabbix. Aquest usuari és el propietari de la base de dades que també té els privilegis necessaris per modificar l'estructura de la base de dades quan actualitza Zabbix.

Per millorar la seguretat, es recomana crear usuaris de la base de dades addicionals amb privilegis mínims. Aquests usuaris s'han de configurar segons el principi del mínim privilegi, és a dir, només haurien de tindre privilegis essencials per a l'exercici de les funcions previstes.

El suport per Oracle DB és obsolet des de Zabbix 7.0.

Creació d'usuaris

Suposant que el propietari de la base de dades connectable (PDB) és usr_owner, es recomana crear dos usuaris addicionals amb els privilegis corresponents (per a les operacions diàries):

  • usr_srv - usuari per executar el servidor Zabbix;
  • usr_web - usuari per executar la interfície i l'API de Zabbix.

Aquests usuaris han de ser creats pel propietari de la PDB (usr_owner) mitjançant les ordres següents:

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;

::: nota important La restauració i l'actualització de la taula l'ha de fer el propietari de la base de dades. :::

Després de crear els usuaris, procediu a crear sinònims.

Generació de sinònims

L'script següent crea sinònims , de manera que usr_srv i usr_web puguin accedir a les taules de l'esquema usr_owner sense especificar l'esquema explícitament.

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;
       BULE FINAL;
       FINAL;
       /

::: nota important Aquest script s'hauria d'executar cada cop després de crear o canviar l'estructura de la base de dades Zabbix (per exemple, després d'actualitzar Zabbix, si es van crear o canviar el nom d'algunes taules). :::