Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
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.
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
.
APP_OWNER
: Eigentümer der Tabellen und Views der Anwendung.APP_USER
: Zugriff auf die Anwendung erforderlich.
Voraussetzungen
-
Oracle Database 23ai in OCI bereitgestellt. In diesem Tutorial haben wir die Datenbank verwendet, die in einer OCI Compute-Instanz erstellt wird.
-
Fügen Sie die integrierbare Oracle Database 23ai-Datenbank (PDB)
FREEPDB1
als Ziel in Oracle Data Safe hinzu. In diesem Tutorial haben wir den Compute-Instanzassistenten zur Registrierung verwendet. Informationen hierzu finden Sie unter Oracle Data Safe - Zieldatenbankregistrierung. -
Jedes Oracle Database-Tool zum Testen der Oracle SQL Firewall. Wir verwenden Oracle SQL Developer, um SQL-Anweisungen auszuführen. Weitere Informationen finden Sie unter Oracle SQL Developer.
Hinweis: Überspringen Sie Aufgabe 1, wenn Sie bereits eine Oracle Database 23ai-Instanz haben.
Aufgabe 1: Oracle Database 23ai Compute-Instanz erstellen
-
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.
-
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>
-
Wechseln Sie zum Root-Benutzer, und aktualisieren Sie das System mit der neuesten Software, wenn Sie an einer VM arbeiten.
sudo su yum update
-
Aktivieren Sie das Oracle Linux 8 Developer-Repository.
yum config-manager --set-enabled ol8_developer
-
Laden Sie Oracle Database 23ai Free RPM herunter, und installieren Sie es als Root.
yum -y install oracle-database-preinstall-23c
-
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
-
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
-
Konfigurieren Sie Oracle Database 23ai. Das Konfigurationsskript richtet eine Containerdatenbank (FREE) ein, die eine integrierbare Datenbank
FREEPDB1
enthält und den Listener am Standardport1521
bereitstellt. Führen Sie das Servicekonfigurationsskript aus./etc/init.d/oracle-free-23c configure
-
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
-
Führen Sie den folgenden Befehl aus, damit die Datenbank beim Booten der Instanz automatisch gestartet wird.
systemctl enable oracle-free-23c
-
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
-
Klicken Sie im Navigationspfad oben auf der Seite auf Oracle-Datenbanken, Data Safe, Sicherheitscenter und SQL-Firewall.
-
Standardmäßig wird SQL-Firewall in einer neuen 23ai-Zieldatenbank deaktiviert. Klicken Sie auf die Datenbank, und aktivieren Sie sie.
Aufgabe 3: Beispielbenutzer und -objekte erstellen
-
Melden Sie sich mit Oracle SQL Developer durch den sys-Benutzer als sysdba bei der Datenbank
FREEPDB1
an. -
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;
Aufgabe 4: SQL Collection erstellen und starten
-
Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, und klicken Sie auf SQL-Collection erstellen und starten.
-
Geben Sie den Datenbankbenutzer als
APP_USER
ein, aktivieren Sie die SQL-Erfassungsebene mitUser issued SQL commands
, und klicken Sie auf SQL-Erfassung erstellen und starten.Mit der Arbeitsanforderung SQL-COLLECTION erstellen werden die SQLs erfasst.
Aufgabe 5: Autorisierte SQL-Anweisung ausführen
-
Stellen Sie mit Oracle SQL Developer eine Verbindung zur
APP_USER@FREEPDB1
her. -
Führen Sie die autorisierte SQL-Anweisung aus.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
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.
Aufgabe 6: SQL-Collection stoppen
-
Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails und STOP.
Aufgabe 7: Firewall-Policy generieren
-
Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails und Firewall-Policy generieren.
Sie können die eindeutigen zulässigen SQL-Anweisungen anzeigen, und die Policy befindet sich im Status
INACTIVE
.
Aufgabe 8: Policy bereitstellen und durchsetzen
-
Klicken Sie im Navigationspfad oben auf der Seite auf Data Safe, Sicherheitscenter, SQL-Firewall, Konfigurationsdetails, SQL-Erfassungsdetails, Firewall-Policy-Details und Bereitstellen und durchsetzen.
-
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
Der Status der Policy lautet
ACTIVE
. - Durchsetzungsgeltungsbereich:
Aufgabe 9: Oracle SQL Firewall testen
-
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;
-
Wir können die Oracle SQL Firewall-Verletzung für die zweite Abfrage beobachten, die nicht in der SQL-Collection enthalten ist.
Aufgabe 10: Oracle SQL Firewall-Dashboard und Verletzungsberichte prüfen
-
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.
-
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.
Verwandte Links
Danksagungen
-
Autor - Alex Kovuru
-
Mitwirkender - Indira Balasundaram
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.
Use Oracle SQL Firewall with Oracle Data Safe
F91605-02
May 2024