Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

3 Protegendo o Oracle

Visão geral

Esta seção contém as melhores práticas para proteger um banco de dados Oracle.

Para uma configuração básica, consulte as instruções padrão de criação do banco de dados Oracle, que incluem a criação do usuário 'zabbix' com privilégios totais no banco de dados Zabbix. Este usuário é o proprietário do banco de dados e também possui os privilégios necessários para modificar a estrutura do banco de dados ao atualizar o Zabbix.

Para melhorar a segurança, recomenda-se criar usuários adicionais do banco de dados com privilégios mínimos. Esses usuários devem ser configurados com base no princípio do menor privilégio, ou seja, eles devem ter apenas os privilégios essenciais para executar as funções pretendidas.

O suporte ao Oracle DB está obsoleto desde o Zabbix 7.0.

Criando usuários

Assumindo que o proprietário do banco de dados plugável (PDB) é usr_owner, recomenda-se criar dois usuários adicionais com os privilégios correspondentes (para operações diárias):

  • usr_srv - usuário para executar o Zabbix server;
  • usr_web - usuário para executar o Zabbix frontend e API.

Esses usuários devem ser criados pelo proprietário do PDB (usr_owner) usando os seguintes 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;

A restauração e atualização da tabela devem ser realizadas pelo proprietário do banco de dados.

Após criar os usuários, prossiga para a criação de sinônimos.

Gerando sinônimos

O script abaixo cria sinônimos, para que usr_srv e usr_web possam acessar tabelas no schema usr_owner sem especificar explicitamente o 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;
       /

Este script deve ser executado toda vez após a estrutura do banco de dados do Zabbix ser criada ou alterada (por exemplo, após atualizar o Zabbix, se algumas tabelas foram criadas ou renomeadas).