Wallet oracle

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Sécurisation des identifiants de connexion Oracle (Oracle Wallet)
Voir aussi User droits privileges connection oracle · Tnsnames.ora

Un wallet Oracle (via l'utilitaire mkstore) permet de stocker les couples identifiant/mot de passe de connexion en dehors des scripts shell, dans un fichier chiffré protégé par un mot de passe maître. Il fonctionne comme un keystore : les scripts se connectent via un alias, sans jamais manipuler le mot de passe réel en clair.

Référence externe : article de blog dbi-services sur l'utilisation d'un wallet pour chiffrer les mots de passe côté client Oracle.

Structure

Une fois créé, le wallet se compose de deux fichiers dans un répertoire dédié :

oracle@hostname:~/ [DB1] ll wallets/
-rw------- 1 oracle oinstall 3949 cwallet.sso
-rw------- 1 oracle oinstall 3872 ewallet.p12
  • cwallet.sso — wallet auto-ouvrant (single sign-on), pas de mot de passe demandé à
 l'exécution — pratique pour des scripts automatisés, mais moins strict côté sécurité.
  • ewallet.p12 — wallet standard, protégé par le mot de passe maître à chaque ouverture.

Création

Le mot de passe maître doit faire plus de 8 caractères pour créer/ouvrir le wallet :

mkstore -wrl /home/oracle/wallets -create

Ajouter des identifiants au wallet (alias TNS, utilisateur, mot de passe demandé de façon interactive) :

mkstore -wrl /home/oracle/wallets -createCredential mon_alias_tns mon_utilisateur

Activer l'utilisation du wallet pour les connexions

vi $TNS_ADMIN/sqlnet.ora
WALLET_LOCATION =
  (SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
      (DIRECTORY = /home/oracle/wallets)
    )
  )

SQLNET.WALLET_OVERRIDE = TRUE

Une fois configuré, la connexion se fait simplement via l'alias, sans mot de passe explicite :

sqlplus /@mon_alias_tns

Autres commandes

Changer mot de passe/utilisateur d'un credential :

mkstore -wrl wallet_location -modifyCredential alias_tns utilisateur

Supprimer un credential :

mkstore -wrl wallet_location -deleteCredential alias_tns

Lister les credentials :

mkstore -wrl wallet_location -listCredential

Voir aussi