Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a Oracle Cloud Infrastructure Free Tier.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos del entorno en la nube.
Uso de Oracle SQL Firewall con Oracle Data Safe
Introducción
Oracle SQL Firewall protege en tiempo real de ataques comunes contra la base de datos restringiendo el acceso a la base de datos únicamente a conexiones o sentencias SQL autorizadas para un usuario designado.
La consola unificada de Oracle Data Safe se ha ampliado para gestionar y supervisar las bases de datos de Oracle SQL Firewall para Oracle Database 23ai. Los administradores pueden utilizar Oracle Data Safe para recopilar actividades SQL de cuentas de base de datos, supervisar el progreso de la recopilación, crear políticas de SQL Firewall con reglas de lista de permitidos (contextos permitidos y sentencias SQL permitidas) de las actividades SQL recopiladas y activar políticas de SQL Firewall.
Cuando se activa una política de firewall, Oracle Data Safe recopila automáticamente los logs de violación de firewall de la base de datos y los almacena en Oracle Data Safe. Estos logs estarán disponibles para el análisis y la generación de informes en línea en todo el conjunto de bases de datos.
Público Objetivo
Administradores de bases de datos y administradores de seguridad de Oracle Cloud Infrastructure (OCI).
Objetivo
Descubra cómo utilizar Oracle SQL Firewall con Oracle Data Safe con un caso de uso sencillo.
Caso de uso: autorice la sentencia SQL "Select on View" y bloquee cualquier otro SQL para el usuario designado APP_USER
.
APP_OWNER
: propietario de las tablas y vistas de la aplicación.APP_USER
: necesita acceso a la aplicación.
Requisitos
-
Oracle Database 23ai aprovisionado en OCI. En este tutorial, hemos utilizado la base de datos que se crea en una instancia de OCI Compute.
-
Agregue la base de datos de conexión (PDB) de Oracle Database 23ai:
FREEPDB1
como destino en Oracle Data Safe. En este tutorial, hemos utilizado el asistente de instancias informáticas para registrarse. Consulte Oracle Data Safe - Registro de base de datos de destino. -
Cualquier herramienta de Oracle Database para probar Oracle SQL Firewall. Estamos utilizando Oracle SQL Developer para ejecutar sentencias SQL. Para obtener más información, consulte Oracle SQL Developer.
Nota: Omita la tarea 1 si ya tiene una instancia de Oracle Database 23ai.
Tarea 1: Creación de una instancia informática de Oracle Database 23ai
-
Vaya a la consola de OCI, vaya a Recursos informáticos, Instancias y, a continuación, haga clic en Crear instancia. Introduzca los siguientes detalles para crear una instancia.
-
Crear una base de datos de Oracle Database 23ai. Conéctese a su instancia informática con el siguiente comando.
ssh -i <private-ssh-key> opc@<publicip-computeinstance>
-
Cambie al usuario root y actualice el sistema con el software más reciente cuando trabaje en una máquina virtual.
sudo su yum update
-
Active el repositorio de Oracle Linux 8 Developer.
yum config-manager --set-enabled ol8_developer
-
Descargue Oracle Database 23ai Free RPM e instálelo como raíz.
yum -y install oracle-database-preinstall-23c
-
Para ejecutar una instalación basada en RPM, descargue el archivo
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 Oracle Database ejecutando el siguiente comando.
yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Configurar Oracle Database 23ai. El script de configuración configura una base de datos de contenedores (FREE) que incluye una base de datos de conexión
FREEPDB1
y prepara el listener en el puerto por defecto1521
. Ejecute la secuencia de comandos de configuración de servicio./etc/init.d/oracle-free-23c configure
-
Defina las variables de entorno en
bash_profile
con la siguiente configuración.#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
-
Ejecute el siguiente comando para que la base de datos se inicie automáticamente cuando se inicie la instancia.
systemctl enable oracle-free-23c
-
Compruebe si el firewall de Linux está activado. Use los siguientes comandos para desactivarlo.
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld
Tarea 2: Activación del estado del firewall SQL en la base de datos de destino a través de Oracle Data Safe
-
En la ruta de navegación de la parte superior de la página, haga clic en Bases de datos Oracle, Data Safe, Centro de seguridad y SQL Firewall.
-
Por defecto, SQL Firewall se desactivará en una nueva base de datos de destino de 23ai. Haga clic en la base de datos y actívela.
Tarea 3: Creación de usuarios y objetos de muestra
-
Conéctese a la base de datos
FREEPDB1
con Oracle SQL Developer por usuario sys como sysdba. -
Cree los usuarios y objetos de ejemplo.
-- 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;
Tarea 4: Creación e Inicio de la Recopilación de SQL
-
En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración y haga clic en Crear e iniciar recopilación SQL.
-
Introduzca el usuario de base de datos como
APP_USER
y active el nivel de recopilación SQL conUser issued SQL commands
y haga clic en Crear e iniciar recopilación SQL.La solicitud de trabajo CREATE SQL COLLECTION comenzará a recopilar los SQL.
Tarea 5: Ejecutar Sentencia SQL Autorizada
-
Conéctese a
APP_USER@FREEPDB1
con Oracle SQL Developer. -
Ejecute la sentencia SQL autorizada.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
Podemos ver las estadísticas de recopilación de SQL desde la consola de Oracle Data Safe. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL e Información de recopilación SQL.
Tarea 6: Parada de la Recopilación SQL
-
En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Security center, SQL Firewall, Configuration details, SQL collection details y STOP.
Tarea 7: Generar política de firewall
-
En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL y Generar política de firewall.
Podemos ver las sentencias SQL permitidas únicas y la política tiene el estado
INACTIVE
.
Tarea 8: Despliegue y Aplicación de la Política
-
En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL, Detalles de política de firewall y Desplegar y aplicar.
-
Seleccione los siguientes detalles y haga clic en Desplegar y aplicar.
- Ámbito de aplicación:
All
- Acción sobre violaciones:
Block and log violations
- Auditoría de violaciones:
On
Podemos ver que el estado de la política es
ACTIVE
. - Ámbito de aplicación:
Tarea 9: Prueba de Oracle SQL Firewall
-
Conéctese como
APP_USER@FREEPDB1
con Oracle SQL Developer.select * from APP_OWNER.DEMO_EMPLOYEES_VIEW; select * from APP_OWNER.DEMO_EMPLOYEES;
-
Podemos observar la violación de Oracle SQL Firewall para la segunda consulta que no está en la recopilación SQL.
Tarea 10: Verificación del Panel de Control de Oracle SQL Firewall y los Informes de Violación
-
Podemos ver el panel de control de Oracle SQL Firewall para la vista de conjunto de violaciones y recopilaciones SQL de Oracle SQL Firewall. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Detalles de configuración, Detalles de recopilación SQL y Generar política de firewall.
-
Podemos ver el resumen de violaciones. En la ruta de navegación de la parte superior de la página, haga clic en Data Safe, Centro de seguridad, SQL Firewall, Informes de violación y Todas las infracciones.
Enlaces relacionados
Agradecimientos
-
Autor: Alex Kovuru
-
Contribuyente: Indira Balasundaram
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Use Oracle SQL Firewall with Oracle Data Safe
F91606-02
May 2024