Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Utiliser Oracle SQL Firewall avec Oracle Data Safe
Présentation
Oracle SQL Firewall fournit une protection en temps réel contre les attaques les plus communes contre la base de données en restreignant l'accès de la base de données aux énoncés ou connexions SQL autorisés pour un utilisateur désigné.
La console unifiée d'Oracle Data Safe a été étendue pour gérer et surveiller les bases de données Oracle SQL Firewall pour Oracle Database 23ai. Les administrateurs peuvent utiliser Oracle Data Safe pour collecter les activités SQL des comptes de base de données, surveiller la progression de la collecte, créer des politiques de pare-feu SQL avec des règles de liste d'autorisation (contextes autorisés et énoncés SQL autorisés) à partir des activités SQL collectées et activer des politiques de pare-feu SQL.
Lorsqu'une politique de pare-feu est activée, Oracle Data Safe collecte automatiquement les journaux de violation de pare-feu de la base de données et les stocke dans Oracle Data Safe. Ces journaux sont ensuite disponibles pour l'analyse et la production de rapports en ligne dans l'ensemble de votre parc de bases de données
Public cible
Administrateurs de base de données et administrateurs de la sécurité d'Oracle Cloud Infrastructure (OCI).
Objectif
Découvrez comment utiliser Oracle SQL Firewall avec Oracle Data Safe dans un cas d'utilisation simple.
Cas d'utilisation : Autorisez l'énoncé SQL "Sélectionner dans la vue" et bloquez tout autre énoncé SQL pour l'utilisateur désigné APP_USER
.
APP_OWNER
: Responsable des tables et des vues de l'application.APP_USER
: Nécessite l'accès à l'application.
Préalables
-
Oracle Database 23ai provisionné dans OCI. Dans ce tutoriel, nous avons utilisé la base de données créée dans une instance du service de calcul OCI.
-
Ajouter une base de données enfichable (PDB) Oracle Database 23ai -
FREEPDB1
en tant que cible dans Oracle Data Safe. Dans ce tutoriel, nous avons utilisé l'assistant d'instance de calcul pour nous inscrire. Voir Oracle Data Safe - Enregistrement de la base de données cible. -
Tout outil Oracle Database permettant de tester Oracle SQL Firewall. Nous utilisons Oracle SQL Developer pour exécuter des énoncés SQL. Pour plus d'informations, voir Oracle SQL Developer.
Note : Ignorez la tâche 1, si vous avez déjà une instance Oracle Database 23ai.
Tâche 1 : Créer une instance de calcul Oracle Database 23ai
-
Allez à la console OCI, naviguez jusqu'à Calcul, Instances, puis cliquez sur Créer une instance. Entrez les informations suivantes pour créer une instance.
-
Créez une base de données Oracle Database 23ai. Connectez-vous à votre instance de calcul à l'aide de la commande suivante.
ssh -i <private-ssh-key> opc@<publicip-computeinstance>
-
Passez à l'utilisateur racine et mettez à jour le système avec le dernier logiciel lorsque vous travaillez sur une machine virtuelle.
sudo su yum update
-
Activer le référentiel Oracle Linux 8 Developer.
yum config-manager --set-enabled ol8_developer
-
Téléchargez Oracle Database 23ai Free RPM et installez-le en tant que racine.
yum -y install oracle-database-preinstall-23c
-
Pour exécuter une installation basée sur RPM, téléchargez le fichier
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
-
Installez Oracle Database en exécutant la commande suivante.
yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Configurez Oracle Database 23ai. Le script de configuration configure une base de données conteneur (FREE) qui inclut une base de données enfichable
FREEPDB1
et prépare le module d'écoute au port par défaut1521
. Exécutez le script de configuration du service./etc/init.d/oracle-free-23c configure
-
Réglez les variables d'environnement à
bash_profile
avec les paramètres suivants.#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
-
Exécutez la commande suivante pour que la base de données démarre automatiquement lors du démarrage de l'instance.
systemctl enable oracle-free-23c
-
Vérifiez si le pare-feu Linux est activé. Utilisez les commandes suivantes pour le désactiver.
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld
Tâche 2 : Activer le statut du pare-feu SQL dans la base de données cible au moyen d'Oracle Data Safe
-
Dans le chemin de navigation en haut de la page, cliquez sur Bases de données Oracle, Sécurité des données, Centre de sécurité et Pare-feu SQL.
-
Par défaut, le pare-feu SQL sera désactivé dans une nouvelle base de données 23ai cible. Cliquez sur la base de données et activez-la.
Tâche 3 : Créer des exemples d'utilisateurs et d'objets
-
Connectez-vous à la base de données
FREEPDB1
avec Oracle SQL Developer par l'utilisateur sys en tant qu'utilisateur sysdba. -
Créez les exemples d'utilisateurs et d'objets.
-- 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;
Tâche 4 : Créer et démarrer la collecte SQL
-
Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration et cliquez sur Créer et démarrer la collection SQL.
-
Entrez l'utilisateur de base de données
APP_USER
et activez le niveau de collecte SQL avecUser issued SQL commands
, puis cliquez sur Créer et démarrer une collection SQL.La demande de travail CREATE SQL COLLECTION commencera à collecter les énoncés SQL.
Tâche 5 : Exécuter l'énoncé SQL autorisé
-
Connectez-vous à
APP_USER@FREEPDB1
avec Oracle SQL Developer. -
Exécutez l'instruction SQL autorisée.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
Nous pouvons voir les synthèses de collecte SQL à partir de la console Oracle Data Safe. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Synthèses de la collection SQL.
Tâche 6 : Arrêter la collection SQL
-
Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Arrêter.
Tâche 7 : Générer la politique de pare-feu
-
Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Générer une politique de pare-feu.
Nous pouvons voir les énoncés SQL autorisés uniques et la politique a l'état
INACTIVE
.
Tâche 8 : Déployer et appliquer la stratégie
-
Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL, Détails de la politique de pare-feu et Déployer et appliquer.
-
Sélectionnez les détails suivants et cliquez sur Déployer et appliquer.
- Portée de l'application :
All
- Action contre les violations :
Block and log violations
- Vérification pour les violations :
On
Nous pouvons voir le statut de la politique est
ACTIVE
. - Portée de l'application :
Tâche 9 : Tester Oracle SQL Firewall
-
Connectez-vous en tant que
APP_USER@FREEPDB1
avec Oracle SQL Developer.select * from APP_OWNER.DEMO_EMPLOYEES_VIEW; select * from APP_OWNER.DEMO_EMPLOYEES;
-
Nous pouvons observer la violation d'Oracle SQL Firewall pour la deuxième interrogation qui ne figure pas dans la collection SQL.
Tâche 10 : Vérifier le tableau de bord Oracle SQL Firewall et les rapports de violation
-
Le tableau de bord Oracle SQL Firewall présente la vue du parc des violations Oracle SQL Firewall et des collections SQL. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Détails de la configuration, Détails de la collection SQL et Générer une politique de pare-feu.
-
Nous pouvons voir le résumé des violations. Dans le chemin de navigation en haut de la page, cliquez sur Sécurité des données, Centre de sécurité, Pare-feu SQL, Rapports de violation et Toutes les violations.
Liens connexes
Remerciements
-
Auteur - Alex Kovuru
-
Contributeur - Indira Balasundaram
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Use Oracle SQL Firewall with Oracle Data Safe
F97853-01
May 2024