Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Usar o Oracle SQL Firewall com o Oracle Data Safe
Introdução
O Oracle SQL Firewall fornece proteção em tempo real contra ataques comuns ao banco de dados, restringindo o acesso ao banco de dados apenas a instruções ou conexões SQL autorizadas para um usuário designado.
A console unificada do Oracle Data Safe foi estendida para gerenciar e monitorar o Oracle SQL Firewall para bancos de dados Oracle Database 23ai. Os administradores podem usar o Oracle Data Safe para coletar atividades SQL de contas de banco de dados, monitorar o andamento da coleta, criar políticas do SQL Firewall com regras de lista de permissões (contextos permitidos e instruções SQL permitidas) das atividades SQL coletadas e ativar políticas do SQL Firewall.
Quando uma política de firewall é ativada, o Oracle Data Safe coleta automaticamente os logs de violação de firewall do banco de dados e os armazena no Oracle Data Safe. Esses logs ficam disponíveis para análise e geração de relatórios on-line em toda a frota de bancos de dados.
Público-alvo
Administradores de Banco de Dados e Administradores de Segurança do OCI (Oracle Cloud Infrastructure).
Objetivo
Entenda como usar o Oracle SQL Firewall com o Oracle Data Safe com um caso de uso simples.
Caso de uso: Autorize a instrução SQL "Selecionar na Exibição" e bloqueie qualquer outra SQL para o usuário designado APP_USER
.
APP_OWNER
: Proprietário das tabelas e views do aplicativo.APP_USER
: Precisa acessar o aplicativo.
Pré-requisitos
-
Oracle Database 23ai provisionado no OCI. Neste tutorial, usamos o banco de dados que é criado em uma instância do OCI Compute.
-
Adicione o Oracle Database 23ai pluggable database (PDB) -
FREEPDB1
como Destino no Oracle Data Safe. Neste tutorial, usamos o assistente de instância de computação para registrar, consulte Oracle Data Safe - Registro do Banco de Dados de Destino. -
Qualquer ferramenta do Oracle Database para testar o Oracle SQL Firewall. Estamos usando o Oracle SQL Developer para executar instruções SQL. Para obter mais informações, consulte Oracle SQL Developer.
Observação: Ignore a Tarefa 1, se você já tiver a instância do Oracle Database 23ai.
Tarefa 1: Criar Instância de Computação do Oracle Database 23ai
-
Vá para a Console do OCI, navegue até Compute, Instâncias e clique em Criar Instância. Informe os detalhes a seguir para criar uma instância.
-
Crie o banco de dados do Oracle Database 23ai. Conecte-se à sua instância de computação usando o comando a seguir.
ssh -i <private-ssh-key> opc@<publicip-computeinstance>
-
Alterne para o usuário root e atualize o sistema com o software mais recente ao trabalhar em uma VM.
sudo su yum update
-
Ative o repositório do Desenvolvedor do Oracle Linux 8.
yum config-manager --set-enabled ol8_developer
-
Faça download do Oracle Database 23ai Free RPM e instale-o como raiz.
yum -y install oracle-database-preinstall-23c
-
Para executar uma instalação baseada em RPM, faça download do arquivo
oracle-database-free-23c-1.0-1.el8.x86_64.rpm
.wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Instale o Oracle Database executando o comando a seguir.
yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Configure o Oracle Database 23ai. O script de configuração configura um banco de dados contêiner (FREE) que inclui um banco de dados plugável
FREEPDB1
e prepara o listener na porta padrão1521
. Execute o script de configuração do serviço./etc/init.d/oracle-free-23c configure
-
Defina as variáveis de ambiente como
bash_profile
com as definições a seguir.#Oracle Database environment variables export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree export ORAENV_ASK=NO export PATH=$ORACLE_HOME/bin:$PATH
-
Execute o comando a seguir para que o banco de dados seja iniciado automaticamente quando a instância for inicializada.
systemctl enable oracle-free-23c
-
Verifique se o firewall Linux está ativado. Use os comandos a seguir para desativá-lo.
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld
Tarefa 2: Ativar Status do SQL Firewall no Banco de Dados de Destino por meio do Oracle Data Safe
-
Na trilha de navegação na parte superior da página, clique em Oracle Databases, Data Safe, Centro de segurança e SQL Firewall.
-
Por padrão, o Firewall SQL será desativado em um novo banco de dados 23ai de destino. Clique no banco de dados e ative-o.
Tarefa 3: Criar Usuários e Objetos de Amostra
-
Conecte-se ao banco de dados
FREEPDB1
com o Oracle SQL Developer pelo usuário sys como sysdba. -
Crie os usuários e objetos de amostra.
-- APP_OWNER who is the owner of the tables and views of the application -- APP_USER who needs to access to the application Create user app_owner identified by QAZxswedc123##; Grant connect, resource, unlimited tablespace to app_owner; Create user app_user identified by QAZxswedc123##; Grant connect, resource, select any table to app_user; -- Sample table created in appuser_test schema CREATE TABLE "APP_OWNER"."DEMO_EMPLOYEES" ( "USERID" NUMBER(4,0), "FIRSTNAME" VARCHAR2(25 BYTE), "LASTNAME" VARCHAR2(35 BYTE), "EMAIL" VARCHAR2(35 BYTE) ) ; Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (73,'Craig','Hunt','Craig.Hunt@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (74,'Fred','Stewart','Fred.Stewart@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (75,'Julie','Reed','Julie.Reed@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (76,'Ruby','James','Ruby.James@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (77,'Alice','Harper','Alice.Harper@oracledemo.com'); Commit; Create view APP_OWNER.DEMO_EMPLOYEES_VIEW as select * from APP_OWNER.DEMO_EMPLOYEES;
Tarefa 4: Criar e Iniciar a Coleta de SQL
-
Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, Firewall de SQL, Detalhes da configuração e clique em Criar e iniciar coleta de SQL.
-
Informe o Usuário do banco de dados como
APP_USER
, ative o nível de coleta de SQL comUser issued SQL commands
e clique em Criar e iniciar coleta de SQL.A solicitação de serviço CREATE SQL COLLECTION começará a coletar os SQLs.
Tarefa 5: Executar Instrução SQL Autorizada
-
Conecte-se ao
APP_USER@FREEPDB1
com o Oracle SQL Developer. -
Execute a instrução SQL autorizada.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
Podemos exibir os insights de coleta de SQL na console do Oracle Data Safe. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL e Informações da coleta de SQL.
Tarefa 6: Interromper a Coleta de SQL
-
Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, Firewall de SQL, Detalhes da configuração, Detalhes da coleta de SQL e STOP.
Tarefa 7: Gerar Política de Firewall
-
Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL e Gerar Política de Firewall.
Podemos exibir as Instruções SQL permitidas exclusivas e a política está no estado
INACTIVE
.
Tarefa 8: Implantar e Aplicar a Política
-
Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL, Detalhes da Política de Firewall e Implantar e impor.
-
Selecione os detalhes a seguir e clique em Implantar e impor.
- Escopo da imposição:
All
- Ação sobre violações:
Block and log violations
- Auditoria de violações:
On
Podemos exibir o status da política como
ACTIVE
. - Escopo da imposição:
Tarefa 9: Testar o Oracle SQL Firewall
-
Conecte-se como
APP_USER@FREEPDB1
com o Oracle SQL Developer.select * from APP_OWNER.DEMO_EMPLOYEES_VIEW; select * from APP_OWNER.DEMO_EMPLOYEES;
-
Podemos observar a violação do Oracle SQL Firewall no que diz respeito à segunda consulta, que não está na coleção SQL.
Tarefa 10: Verificar o Painel de Controle e os Relatórios de Violação do Oracle SQL Firewall
-
Podemos ver o Painel de Controle do Oracle SQL Firewall para a view da frota das violações do Oracle SQL Firewall e das coleções SQL. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, SQL Firewall, Detalhes da configuração, Detalhes da coleta de SQL e Gerar Política de Firewall.
-
Podemos ver o resumo das violações. Na trilha de navegação na parte superior da página, clique em Data Safe, Centro de segurança, Firewall SQL, Relatórios de violação e Todas as Violações.
Links Relacionados
Confirmação
-
Autor - Alex Kovuru
-
Colaborador - Indira Balasundaram
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Use Oracle SQL Firewall with Oracle Data Safe
F91611-02
May 2024