Aucun message portant le libellé ACL. Afficher tous les messages
Aucun message portant le libellé ACL. Afficher tous les messages

lundi 28 janvier 2013

Impossible de recréer la liste de contrôle d'accès (ACL)


Suite à la suppression de la liste nommée "power_users.xml" qui avait été créée à l'aide du code PL/SQL fournit par Oracle, je n'étais plus en mesure de la recréer. J'obtenais l'erreur "ORA-01403 : NO DATA FOUND" lors de l'exécution des commandes suivantes dans SQL*Plus sous le compte "SYS" sur une base  de données 11gR2 (11.2.0.3) :
SYS@lab11g> exec DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml','test','APEX_040100', TRUE, 'connect');
SYS@lab11g> exec DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
Après avoir exécuté plusieurs requêtes pour consulter la configuration de l'ACL dans le dictionnaire de la base de données, je fus surpris du résultat de la requête suivante :

SYS@lab11g> select host from net$_acl;
HOST
-----------------------------------------------------
*
192.168.1.109
ftp.oracle.com

La requête m'indiquait que le host "*" était toujours présent dans la base de données malgré la suppression de la liste "power_users.xml". J'ai alors vérifié si ce "host" était assigné à une autre liste dont j'aurais peut-être oublié :
SYS@lab11g> select *
from DBA_NETWORK_ACLS T1, NET$_ACL t2
where t1.aclid=t2.aclid
and t2.host = '*';
no rows selected
Le host "*" n'étant assigné à aucune liste, je l'ai alors supprimé :
SYS@lab11g> delete from NET$_ACL where host = '*';
1 row deleted.
SYS@lab11g> commit;
Commit complete.
Suite à la suppression, je fus en mesure de recréer la liste telle que désirée.

Je ne peux m'empêcher de vous dire qu'il n'est pas recommandé de supprimer des données directement du dictionnaire de la base de données. Mieux vaut contacter le support d'Oracle.

jeudi 20 décembre 2012

Un portefeuille pour la base de données


Afin de permettre à la base de données d’accéder au contenu d’un site sécurisé par le protocole SSL, celui-ci doit avoir un portefeuille (wallet) dans lequel on retrouve les certificats.

1. Obtention des certificats
Cette section décrit comment procéder à l’exportation des certificats associés au domaine (site) dont nous voulons que la base de données puisse accéder.
Note : Les étapes de cette section dépendent du fureteur utilisé. Dans le cas actuel, le fureteur Firefox de Mozilla est utilisé.
  • Accéder au site via son adresse sécurisée à l’aide d’un fureteur Internet
  • Accéder au détail du certificat du site en cliquant à la gauche de l’adresse URL puis, sur le bouton « More Information… »
  • Cliquez sur le bouton « View Certificate » pour faire afficher la fenêtre des propriétés
  • Ensuite, déplacez-vous vers l’onglet « Details ». À ce moment, il est important de remarquer dans la partie du haut que la hiérarchie est constituée de plusieurs niveaux. Cela indique que vous devez exporter plusieurs certificats (1 par niveau).
  • Pour débuter, sélectionnez le premier niveau puis appuyez sur le bouton « Export » au bas de la fenêtre
  • Choisissez le format « X.509 Certificate (PEM) » puis enregistrez le certificat sous un emplacement de votre choix.
  • Répéter les deux étapes précédentes pour chacun des niveaux
2. Création du portefeuille
  • Accéder au serveur de base de données via un outil tel que « Putty »
  • Établir une connexion avec le compte propriétaire (ex. oracle)
  • Créer une nouvelle entrée dans le portefeuille
Note : Veuillez spécifier un emplacement et un mot de passe pour le protéger.
(oracle) $ orapki wallet create –wallet [répertoire/du/wallet] -pwd [mot_de_passe] -auto_login
3. Importer les certificats dans le portefeuille
  • Transférer les certificats précédemment exportés sur le serveur de base de données
  • Accéder au serveur de base de données via un outil tel que « Putty »
  • Établir une connexion avec le compte propriétaite (ex. oracle)
  • Importer tous les trois certificats en exécutant cette commande pour chacun  :
Note : Assurez-vous de préciser le nom exact du fichier correspondant au certificat.
(oracle) $ orapki wallet add -wallet  [répertoire/du/wallet]  -trusted_cert -cert [Nom_fichier_crt] -pwd [mot_de_passe]
4. Afficher le contenu du portefeuille
Vous pouvez exécuter la commande suivant pour vérifier le contenu du portefeuille. La commande affiche les certificats qu’il contient.

(oracle) $ orapki wallet display -wallet [répertoire/du/wallet]
5. Vérifier le fonctionnement
  • Démarrer l’outil SQL*Plus
  • Établir une connexion à la base de données avec un compte administrateur (DBA)
  • Exécuter la requête SQL suivante :
Note : avant d’exécuter la requête, veuillez spécifier l’emplacement (répertoire) où se trouve le fichier (portefeuille) ainsi que le mot de passe de ce dernier
SELECT utl_http.request('https://[Adresse_URL]','',
       'file:[Nom_fichier_Wallet_incluant_Repertoire]', '[Mot de passe]')
  FROM dual;
Si la requête retourne une série de balise « HTML », cela confirme que c’est fonctionnel.
Et pour terminer, n'oubliez pas de jeter un oeil à la liste de contrôle ACL pour que votre schéma (utilisateur) soit autorisé à accéder au site web.

vendredi 18 mai 2012

Accès controlés aux services réseaux (ACL)

Dorénavant, toutes les fonctionnalités de base de données exigeant une interaction avec les services réseaux sont maintenant contrôlées par une liste d’accès. Cette liste est appelée « Access Control List (ACL) ». Oracle a mis en place un contrôle d’accès granulaire aux services externes.

Ce mécanisme permet de contrôler les accès aux fonctionnalités « UTL_TCP », « UTL_SMTP », « UTL_MAIL », « UTL_HTTP », et « UTL_INADDR ». Si le schéma Oracle exécutant ces fonctionnalités ne possède pas les droits nécessaires, une erreur sera soulevée. Pour octroyer des privilèges, vous pouvez utiliser le package d’Oracle « DBMS_NETWORK_ACL_ADMIN ».