Hinweis:

Oracle SQL Firewall mit Oracle Data Safe verwenden

Einführung

Oracle SQL Firewall bietet Echtzeitschutz vor häufigen Datenbankangriffen, indem sie nur autorisierten SQL-Anweisungen oder -Verbindungen für einen bestimmten Benutzer Zugriff auf die Datenbank gewährt.

Die einheitliche Oracle Data Safe-Konsole wurde erweitert, um die Oracle SQL Firewall für Oracle Database 23ai-Datenbanken zu verwalten und zu überwachen. Administratoren können mit Oracle Data Safe SQL-Aktivitäten von Datenbankaccounts erfassen, den Erfassungsfortschritt überwachen, SQL-Firewall-Policys mit Zulassungslistenregeln (zulässige Kontexte und zulässige SQL-Anweisungen) aus den erfassten SQL-Aktivitäten erstellen und SQL-Firewall-Policys aktivieren.

Oracle Data Safe-Architektur

Wenn eine Firewall-Policy aktiviert ist, erfasst Oracle Data Safe automatisch die Firewallverletzungslogs aus der Datenbank und speichert sie in Oracle Data Safe. Diese Logs stehen dann für Onlineanalysen und Berichte in Ihrer Datenbankflotte zur Verfügung.

Zielgruppe

Datenbankadministratoren und Oracle Cloud Infrastructure-(OCI-)Sicherheitsadministratoren.

Zielsetzung

Machen Sie sich mit der Verwendung von Oracle SQL Firewall mit Oracle Data Safe in einem einfachen Anwendungsfall vertraut.

Anwendungsfall: Autorisieren Sie die SQL-Anweisung "Select on View", und blockieren Sie alle anderen SQL-Anweisungen für den angegebenen Benutzer APP_USER.

Voraussetzungen

Hinweis: Überspringen Sie Aufgabe 1, wenn Sie bereits eine Oracle Database 23ai-Instanz haben.

Aufgabe 1: Oracle Database 23ai Compute-Instanz erstellen

  1. Navigieren Sie zur OCI-Konsole, navigieren Sie zu Compute, Instanzen, und klicken Sie auf Instanz erstellen. Um eine Instanz zu erstellen, geben Sie die folgenden Details ein.

    Datenbank

  2. Erstellen Sie eine Oracle Database 23ai-Datenbank. Stellen Sie mit dem folgenden Befehl eine Verbindung zur Compute-Instanz her.

    ssh -i <private-ssh-key> opc@<publicip-computeinstance>
    
  3. Wechseln Sie zum Root-Benutzer, und aktualisieren Sie das System mit der neuesten Software, wenn Sie an einer VM arbeiten.

    sudo su
    yum update
    
  4. Aktivieren Sie das Oracle Linux 8 Developer-Repository.

    yum config-manager --set-enabled ol8_developer
    
  5. Laden Sie Oracle Database 23ai Free RPM herunter, und installieren Sie es als Root.

    yum -y install oracle-database-preinstall-23c
    
  6. Laden Sie die Datei oracle-database-free-23c-1.0-1.el8.x86_64.rpm herunter, um eine RPM-basierte Installation auszuführen.

    wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
    
  7. Installieren Sie Oracle Database, indem Sie den folgenden Befehl ausführen.

    yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
    
  8. Konfigurieren Sie Oracle Database 23ai. Das Konfigurationsskript richtet eine Containerdatenbank (FREE) ein, die eine integrierbare Datenbank FREEPDB1 enthält und den Listener am Standardport 1521 bereitstellt. Führen Sie das Servicekonfigurationsskript aus.

    /etc/init.d/oracle-free-23c configure
    
  9. Setzen Sie die Umgebungsvariablen mit den folgenden Einstellungen auf bash_profile.

    #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
    
  10. Führen Sie den folgenden Befehl aus, damit die Datenbank beim Booten der Instanz automatisch gestartet wird.

    systemctl enable oracle-free-23c
    
  11. Prüfen Sie, ob die Linux-Firewall aktiviert ist. Verwenden Sie die folgenden Befehle, um sie zu deaktivieren.

    systemctl status firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    

Aufgabe 2: SQL-Firewallstatus in Zieldatenbank über Oracle Data Safe aktivieren

  1. Klicken Sie im Navigationspfad oben auf der Seite auf Oracle-Datenbanken, Data Safe, Sicherheitscenter und SQL-Firewall.

    In Oracle Data Safe navigieren

  2. Standardmäßig wird SQL-Firewall in einer neuen 23ai-Zieldatenbank deaktiviert. Klicken Sie auf die Datenbank, und aktivieren Sie sie.

    Oracle SQL Firewall aktivieren

Aufgabe 3: Beispielbenutzer und -objekte erstellen

  1. Melden Sie sich mit Oracle SQL Developer durch den sys-Benutzer als sysdba bei der Datenbank FREEPDB1 an.

    Datenbank anmelden

  2. Erstellen Sie die Beispielbenutzer und -objekte.

    -- 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;
    

    Benutzer und Objekte erstellen

Aufgabe 4: SQL Collection erstellen und starten

  1. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, und klicken Sie auf SQL-Collection erstellen und starten.

    SQL Collection starten

  2. Geben Sie den Datenbankbenutzer als APP_USER ein, aktivieren Sie die SQL-Erfassungsebene mit User issued SQL commands, und klicken Sie auf SQL-Erfassung erstellen und starten.

    Datenbankbenutzer auswählen

    Mit der Arbeitsanforderung SQL-COLLECTION erstellen werden die SQLs erfasst.

    Arbeitsanforderung

Aufgabe 5: Autorisierte SQL-Anweisung ausführen

  1. Stellen Sie mit Oracle SQL Developer eine Verbindung zur APP_USER@FREEPDB1 her.

    Bei Datenbank anmelden

  2. Führen Sie die autorisierte SQL-Anweisung aus.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    

    SQL-Anweisungen ausführen

  3. Wir können die SQL-Erfassungseinblicke über die Oracle Data Safe-Konsole anzeigen. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails und SQL-Erfassungs-Insights.

    Insights anzeigen

Aufgabe 6: SQL-Collection stoppen

  1. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails und STOP.

    SQL Collection stoppen

Aufgabe 7: Firewall-Policy generieren

  1. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails und Firewall-Policy generieren.

    Firewall Policy generieren

    Sie können die eindeutigen zulässigen SQL-Anweisungen anzeigen, und die Policy befindet sich im Status INACTIVE.

    Policy inaktiv

Aufgabe 8: Policy bereitstellen und durchsetzen

  1. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails, Firewall-Policy-Details und Bereitstellen und durchsetzen.

    Policy erzwingen

  2. Wählen Sie die folgenden Details aus, und klicken Sie auf Bereitstellen und durchsetzen.

    • Durchsetzungsgeltungsbereich: All
    • Aktion bei Verletzungen: Block and log violations
    • Audit bei Verletzungen: On

    "Policy durchsetzen" auswählen

    Der Status der Policy lautet ACTIVE.

    Policy aktiv

Aufgabe 9: Oracle SQL Firewall testen

  1. Melden Sie sich als APP_USER@FREEPDB1 bei Oracle SQL Developer an.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    select * from APP_OWNER.DEMO_EMPLOYEES;
    

    Connect-DB

  2. Wir können die Oracle SQL Firewall-Verletzung für die zweite Abfrage beobachten, die nicht in der SQL-Collection enthalten ist.

    Abfrage validieren

Aufgabe 10: Oracle SQL Firewall-Dashboard und Verletzungsberichte prüfen

  1. Das Oracle SQL Firewall-Dashboard enthält die Flottenansicht der Oracle SQL Firewall-Verletzungen und SQL-Collections. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails und Firewall-Policy generieren.

    Bericht prüfen

  2. Wir können die Zusammenfassung der Verstöße sehen. Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Verletzungsberichte und Alle Verletzungen.

    Übersicht prüfen

Danksagungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.