23/07/2026
Mot de passe externe

Il est souvent nécessaire ou recommandé de se connecter à la base de données rapidement et surtout en toute sécurité, sans que les informations de connexion ne soient visibles. Un exemple, comme l'indique Oracle sur son site, est celui où l'on se connecte à la base de données à partir de scripts Shell présents dans le système de fichiers. Si ces scripts contiennent les informations de connexion, cela peut constituer un problème de sécurité assez important. Pour cet exemple ou d’autres similaires, nous pouvons utiliser l’authentification propre au système d’exploitation, mais à partir Oracle Release 2, Oracle nous offre la possibilité d’utiliser un magasin de mots de passe externe sécurisé, en enregistrant les identifiants de connexion à Oracle un « wallet » stocké côté client. Concrètement, cela consiste à créer un fichier contenant les identifiants de connexion à la base de données, stocké côté client ; la chaîne de connexion indiquera alors l’emplacement de ce « fichier » pour établir la connexion. Cela permettra à l’utilisateur de se connecter en utilisant la syntaxe suivante : « /@alias », où « alias » est le nom choisi pour la connexion à la base de données.

Configurer le magasin de mots de passe externe sécurisé

Tout d'abord, nous devons choisir l'emplacement où nous souhaitons enregistrer le Oracle ; il s'agit en effet de l'emplacement où sera stocké le fichier de portefeuille contenant les informations de connexion Oracle pour se connecter à la base de données, selon la syntaxe suivante : « /@alias ».

Note : L'emplacement peut être un répertoire commun auquel plusieurs utilisateurs ont accès pour se connecter à la base de données.

Dans notre cas, comme il s'agit d'un test, nous allons placer Oracle dans le répertoire racine « oracle notre machine cliente.

mkdir -poracle

Cargamos las variables de entorno del TNS_ADMIN, si no lo has hecho anteriormente, apuntando al fichero tnsnames.ora donde especificaremos la cadena de conexión a la base de datos de nuestra máquina cliente.

exportoracle.0.oracle

Nous ajoutons l'entrée suivante dans le fichier sqlnet.ora, situé dans le répertoire TNS_ADMIN, dans notre cas «oracle.0.oracle.ora »

Dans ce fichier, nous devons spécifier le répertoire dans lequel se trouve le fichier Wallet que nous avons créé précédemment.

Il est important d'ajouter l'entrée SQLNET.WALLET_OVERRIDE qui permet de remplacer tous les paramètres d'authentification existants du système d'exploitation.

WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY =oracle)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 0

À ce stade, nous pouvons déjà créer le wallet à l'aide de l'outil oracle avec l'option -create. Le portefeuille est protégé par un mot de passe, mais la propriété « Connexion automatique » ou « autologin » est activée ; ainsi, les utilisateurs qui se connectent à la base de données le feront sans avoir à saisir de mot de passe, ce qui est en principe l'objectif que nous visons avec la création d'un « mot de passe externe sécurisé ».

[oracle@localhost bin]$ mkstore -wrl «/home/oracle/wallet» -create
Oracle Secret Store Tool Release 21.0.0.0.0 – Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña:  
Volver a Introducir Contraseña:  
[oracle@localhost bin]$

Le mot de passe saisi précédemment est celui du fichier wallet ; il est conseillé de le mémoriser et/ou de le conserver en lieu sûr, car Oracle demandera pour pouvoir manipuler les informations qu'il stocke. Oracle crée deux fichiers (cwallet.sso et ewallet.p12).

Le portefeuille est créé avec des autorisations de lecture/écriture uniquement pour l'utilisateur actuel, de sorte qu'aucun autre utilisateur ne peut le lire.

oracle
[oracle wallet]$ ls -rlt
total 8
-rw——-. 1 oracle oracle 27 sept. 19:16 ewallet.p12.lck
-rw——-. 1 oracle oracle 27 sept. 19:16 ewallet.p12
-rw——-. 1 oracle oracle 27 sept. 19:16 cwallet.sso.lck
-rw——-. 1 oracle oracle 27 sept. 19:16 cwallet.sso

Une fois le portefeuille créé, il peut être modifié à l'aide de la commande "mkstore" décrite ci-dessous.

Ajoutez récemment les identifiants (nom d'utilisateur/mot de passe) au portefeuille à l'aide de l'option -createCredential. Pour faire simple, il s'agit ici d'indiquer les identifiants dont nous avons besoin pour nous connecter à la base de données ; ceux-ci seront stockés dans un fichier de mots de passe.

En nuestro caso vamos a realizar una conexión, siguiendo esta entrada del tnsnames.ora con el usuario test.

TEST_EXTUSER =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = localhost)
(PORT = 1521)
)
(CONNECT_DATA = (server=dedicated) (service_name = srv_testing))
)

Le code est le suivant. Emplacement du portefeuille, informations de connexion à la base de données, identifiant et mot de passe de l'utilisateur avec lequel on souhaite se connecter.

mkstore -wrloracle-createCredential TEST_EXTUSER test testpassword

La sortie de la commande est la suivante, elle vous demandera le mot de passe du portefeuille pour créer les informations d'identification :

[oracle@localhost bin]$ mkstore -wrl «/home/oracle/wallet» -createCredential TEST_EXTUSER test testpassword
Oracle Secret Store Tool Release 21.0.0.0.0 – Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña de Cartera:  

Une fois le portefeuille généré, nous pouvons nous connecter à la base de données avec le portefeuille généré précédemment. Pour se connecter, nous utiliserons la syntaxe suivante "/@db_alias". où db_alias est la référence à l'entrée du portefeuille que nous avons ajoutée et configurée dans notre fichier tnsnames, dans notre cas : /@@TEST_EXTUSER

[oracle admin]$ sqlplus /@TEST_EXTUSER
SQL*Plus: version 21.0.0.0.0 – Production le dimanche 2 octobre 2022 à 17 h 48 min 52 s
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. Tous droits réservés.
Heure de la dernière connexion réussie : Dimanche 2 octobre 2022 17:47:12 -04:00
Connecté à :
Oracle 21c Standard Edition 2 Release 21.0.0.0.0 – Production
Version 21.3.0.0.0
SQL>

Une fois que le portefeuille est généré, nous pouvons effectuer plusieurs actions sur le portefeuille généré :

Liste des entrées actuelles dans notre portefeuille

Afficher la liste des entrées que nous avons créées dans le portefeuille. Pour cela, nous ajouterons la syntaxe – listCredential en indiquant le chemin d'accès au portefeuille dont nous souhaitons consulter les informations d'identification ; Oracle demandera alors le mot de passe du portefeuille.

oracle@localhost admin]$  mkstore -wrl «/home/oracle/wallet» -listCredential
Oracle Secret Store Tool Release 21.0.0.0.0 – Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña de Cartera:  
List credential (index: connect_string username)
1: TEST_EXTUSER test
[oracle@localhost admin]$

Ajout d'une nouvelle connexion d'utilisateur à un Wallet précédemment créé

Si queremos añadir una nueva conexión a nuestro Wallet para conectaros a la base de datos de forma externa usando “external Password”, simplemente añade el nuevo usuario o una nueva cadena de conexión que coincida con una nueva entrada en tu tnsnames.ora. Esta será la que utilices para realizar la conexión.

[oracle@localhost admin]$ mkstore -wrl «/home/oracle/wallet» -createCredential RAUL_EXTUSER raul testpassword
Oracle Secret Store Tool Release 21.0.0.0.0 – Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña de Cartera:  

Si listamos ahora las entradas del wallet podremos ver la nueva entrada que hemos añadido, siendo RAUL_EXTUSER nuestra entrada del tnsnames.ora

[oracle@localhost admin]$  mkstore -wrl «/home/oracle/wallet» -listCredential
Oracle Secret Store Tool Release 21.0.0.0.0 – Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña de Cartera:  
List credential (index: connect_string username)
2: RAUL_EXTUSER raul
1: TEST_EXTUSER test

Nous pouvons tester la connexion.

[oracle admin]$ sqlplus /@RAUL_EXTUSER
SQL*Plus: version 21.0.0.0.0 – Production le dimanche 2 octobre 2022 à 18 h 34 min 07 s
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. Tous droits réservés.
Heure de la dernière connexion réussie : dimanche 2 octobre 2022 à 18 h 26 min 16 s -04:00
Connecté à :
Oracle 21c Standard Edition 2 Release 21.0.0.0.0 – Production
Version 21.3.0.0.0

Modifier les informations d'identification d'un portefeuille

Les informations d'identification des portefeuilles peuvent être modifiées ; il est possible de changer le mot de passe du portefeuille actuel simplement à l'aide de la syntaxe « modifyCredential ».

[oracle@localhost admin]$  mkstore -wrl "/home/oracle/wallet" -modifyCredential RAUL_EXTUSER raul raulnewpassword
Oracle Secret Store Tool Release 21.0.0.0.0 - Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña de Cartera:   

Retirer des informations d'identification d'un portefeuille

Les informations d'identification d'un portefeuille peuvent être supprimées à l'aide de la commande suivante.

mkstore -wrl <wallet_location> -deleteCredential <db_alias>
[oracle@localhost admin]$ mkstore -wrl "/home/oracle/wallet" -deleteCredential RAUL_EXTUSER
Oracle Secret Store Tool Release 21.0.0.0.0 - Production
21.3.0.0.0: Versión {1}
Copyright (c) 2004, 2021, Oracle y/o sus subsidiarias. Todos los Derechos Reservados.
Introducir Contraseña de Cartera:  
[oracle@localhost admin]$  
YouTube
LinkedIn