3 Proteggere Oracle
Panoramica
Questa sezione contiene le best practice per proteggere un database Oracle.
Per una configurazione di base, vedere le istruzioni predefinite per la creazione del database Oracle, che includono la creazione dell'utente 'zabbix' con privilegi completi sul database Zabbix. Questo utente è il proprietario del database e dispone anche dei privilegi necessari per modificare la struttura del database durante l'aggiornamento di Zabbix.
Per migliorare la sicurezza, è consigliata la creazione di ulteriori utenti del database con privilegi minimi. Questi utenti devono essere configurati in base al principio del privilegio minimo, ossia devono avere solo i privilegi essenziali per svolgere le funzioni previste.
Il supporto per Oracle DB è deprecato a partire da Zabbix 7.0.
Creazione degli utenti
Supponendo che il proprietario del database pluggable (PDB) sia usr_owner, si consiglia di creare due utenti aggiuntivi con i privilegi corrispondenti (per le operazioni quotidiane):
- usr_srv - utente per l'esecuzione di Zabbix server;
- usr_web - utente per l'esecuzione di Zabbix frontend e API.
Questi utenti devono essere creati dal proprietario del PDB (usr_owner) usando i seguenti comandi:
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;
Il ripristino e l'aggiornamento delle tabelle devono essere eseguiti dal proprietario del database.
Dopo aver creato gli utenti, procedere alla creazione dei sinonimi.
Generazione di sinonimi
Lo script seguente crea sinonimi, in modo che usr_srv e usr_web possano accedere alle tabelle nello schema usr_owner senza specificare esplicitamente lo schema.
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;
/
Questo script deve essere eseguito ogni volta dopo che la struttura del database Zabbix è stata creata o modificata (ad esempio, dopo l'aggiornamento di Zabbix, se alcune tabelle sono state create o rinominate).