devstory

Création et gestion de Oracle Wallet

  1. Introduction
  2. Qu'est-ce qu'Oracle Wallet ?
  3. Wallet trong Oracle 11g, 12c
  4. Wallet dans Oracle 10g
  5. Ajouter des certificats (credentials) de connexion à une base de données de Wallet (10g, 11g, 12c)

1. Introduction

Ce document est écrit sur la base de :
  • Oracle 11g (OK for 12c)

2. Qu'est-ce qu'Oracle Wallet ?

Oracle Wallet est une manière de stockage les informations de connexion à la base de données sur plusieurs domaines différents. Le tableau ci-dessous illustre le contenu d'un Wallet contient.
DB Connection String
Username
Passwod
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db11g)
)
)
dev
dev001
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db12c)
)
)
prod
prod123
Donc Wallet contient des certificats (credentials) afin que vous puissiez accéder à une certaine base de données. Lorsque des informations de cette base de données changent, vous pouvez mettre à jour le Wallet. Votre application peut utiliser le certificat Wallet pour accéder à une base de données au lieu de gérer manuellement les informations.
Oracle Wallet stocke les informations de certificat dans un fichier. Il serait très dangereux si des hackers copieent ce fichier et utilisent dans leurs ordinateurs. Heureusement Oracle vous permet de créer des portefeuilles (Wallet) locales qu'elles ne fonctionnent que sur l'ordinateur qui les a créées.

3. Wallet trong Oracle 11g, 12c

Creating and Managing Wallet (11g, 12c)
Vous devez ouvrir CMD avec des droits d'administrateur.
CD vers le dossier bin de l'Oracle :
Les Wallet (portefeuilles)peuvent être copié sur différentes machines, ce qui peut représenter un risque pour la sécurité. Dans 11g version 2, vous pouvez empêcher la fonctionnalité de connexion automatique du Wallet de fonctionner s'il est copié sur une autre machine en créant un Wallet local à l'aide de la commande "orapki", au lieu de la commande "mkstore" comme d'Oracle 10g.
Utilisez la commande créer wallet "orapki" :
# wallet_location is the path to the directory where you want to create and store the wallet.


orapki wallet create -wallet <wallet_location> -pwd <password> -auto_login_local


# Example:

orapki wallet create -wallet C:/DevPrograms/mywallet -pwd mysecret1 -auto_login_local
Wallet a été créé , il se compose deux fichiers cwallet.sso & ewallet.p12
Display Wallet Information (11g,12c)
Afficher les informations de wallet :
# Syntax:

orapki wallet display -wallet <wallet-location>

# Example:

orapki wallet display -wallet C:/DevPrograms/mywallet
Change Wallet Password (11g,12c)
# Syntax

orapki wallet change_pwd -wallet <wallet-location> -oldpwd <old password> -newpwd <new password>

# Example:

orapki wallet change_pwd -wallet C:/DevPrograms/mywallet -oldpwd mysecret1 -newpwd mysecret2

4. Wallet dans Oracle 10g

Créer et gérer Wallet (10g)
Vous devez ouvrir CMD en tant qu'administrateur.
CD vers le répertoire bin de l’Oracle :
Utilisez la commande pour créer wallet :
# wallet_location is the path to the directory where you want to create and store the wallet.

mkstore -wrl <wallet_location> -create


# Example:

mkstore -wrl C:/DevPrograms/mywallet -create
Saisissez le mot de passe pour wallet :
Remarque : Le mot de passe que vous avez saisit peut ne pas être conforme à la norme et vous recevrez un message d'erreur, tel qu'un mot de passe de moins de 8 caractères.
Ré-saisissez votre mot de passe: mysecret1
Wallet a été créé , il se compose deux filchier cwallet.sso & ewallet.p12

5. Ajouter des certificats (credentials) de connexion à une base de données de Wallet (10g, 11g, 12c)

mkstore -wrl <wallet_location> -createCredential <db_connect_string> <username> <password>
DB Connection String
Username
Passwod
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db11g)
)
)
dev
dev001
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db12c)
)
)
prod
prod123
Exemple :
# <wallet_location>

C:\DevPrograms\mywallet

# <db_connect_string>

"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=db11g)))"