SAS/Access to Oracle et utilisation des Wallets
Les Wallet Oracle permettent de sécuriser les connexions à la base. Il s'agit de 2 fichiers cryptés en Triple-DES manipulables qu’avec des binaires Oracle ( l'outil mkstore). Ces fichiers contiennent l’association d'un nom de service Oracle à un compte oracle et son mot de passe.
Ainsi, pour se connecter au service il suffit d'indiquer uniquement le nom du service. Oracle détermine alors via les wallets le compte oracle à utiliser et le mot de passe de celui-ci :
Dans cet article, je vais vous présenter comment mettre en place ce mécanisme et comme l'utiliser dans SAS.
Ce qui donne la création de deux fichiers :
Maintenant que nos fichiers de wallets sont créés, nous allons pouvoir y ajouter une association SERVICE, LOGIN et MOT DE PASSE, via la commande ci-dessous :
Avant de continuer, vérifions la bonne prise en compte des credentials dans le wallet :
Ce fichier sqlnet.ora est copié au dans le répertoire définit dans la variable d'environnement TNS_ADMIN (dans mon cas /opt/sas/install/AccessClients/9.4/OracleInstantClient/instantclient_12_2)
Les connexions se font maintenant en utilisant la wallet.
Notez qu'il est toujours possible de se connecter via un couple login/password :
La connexion via un couple user/password est toujours possible :
Depuis le serveur Oracle, l'audit des sessions montre que la connexion via le wallet utilise bien le compte sasuser :
-> Vérifier la présence et les droits des fichiers wallets
ERROR: ORACLE connection error: ORA-01017: invalid username/password; logon denied.
-> Ce message d'erreur montre que l'utilisation des wallets n'est pas prise en compte. Vérifier la configuration et/ou la présence de votre fichier sqlnet.ora
ERROR: ORACLE connection error: ORA-01005: null password given; logon denied.
Dans cet exemple, j'ai ajouté l'option user. Cela a pour impact de ne pas utiliser les wallets. Un mot de passe est donc demandé.


Création du wallet
Vous vous en doutez la première étape consiste à créer le wallet qui servira au stockage des informations de connexion. La commande pour créer une wallet est la suivante : mkstore –wrl [EMPLACEMENT_FICHIERS] – create

Configuration du client Oracle
Les opérations ci-dessous sont effectuée sur le serveur SAS. La première étape consiste à copier les fichiers de wallets dans un répertoire accessible par SAS. Dans mon cas je copie les wallets dans la home directory de mon utilisateur. La deuxième étape consiste à créer un fichier sqlnet.ora indiquant qu'il est possible d'utiliser les wallets pour la connexion :
Connexion à la base depuis une session SAS
Maintenant que la connexion via les wallets fonctionnent en dehors de SAS, se connecter à Oracle via SAS/ACCESS interface to Oracle et en utilisant ce mécanisme est simple. Il suffit d'utiliser la syntaxe ci-dessous :

Quelques erreurs
ERROR: ORACLE connection error: ORA-12578: TNS:wallet open failed.

