Gestion d’une bibliothèque Oracle dans SAS
Lorsque que l’on administre une plateforme SAS, on en vient très vite à configurer des bibliothèques pointant vers des bases de données (via les modules SAS/ACCESS interface to).
L’une des problématiques est de définir les utilisateurs de cette base de données (un compte Oracle par exemple) et de lier cette identité à son ou ses utilisateurs SAS.
Pour bien comprendre, prenons un exemple simple.
Mon environnement SAS contient 2 utilisateurs :
Aussi, une fois connecté à SAS Enterprise Guide, avec son compte nicolas, l’utilisateur peut se connecter à sa base de données oracle en soumettant l’instruction LIBNAME suivant :
L’utilisateur ayant implicitement saisit le compte utilisateur et le mot de passe du compte oracle (scott/tiger), la connexion se fait sans problème.
Maintenant, imaginons que notre utilisateur souhaite ne plus avoir à créer cette bibliothèque manuellement et aimerait qu’elle soit automatiquement présente à l’ouverture de SAS Enterprise Guide.
Il se tourne donc vers son administrateur SAS et lui demande de créer une nouvelle bibliothèque Oracle dans les métadonnées.

Maintenant que la bibliothèque Oracle est créée dans les métadonnées, l’administrateur vérifie si l’instruction libname associé est correcte :
L’administrateur est alors « prompté » et doit saisir les informations de connexion à LA BASE ORACLE :
L’instruction libname est ensuite affichée :
Pour valider, l’administrateur copie puis colle cette instruction dans une session SAS ( Base SAS ou SAS Enterprise Guide ) :
Ce qui donne :
NOTE: Libref ORA12 was successfully assigned as follows:
Engine: ORACLE
Physical Name: ora12
L’erreur est la suivante :
[Error] ORACLE connection error: ORA-01005: null password given; logon denied.
Pour aller plus loin dans l’investigation et déterminer la cause de problème, l’administrateur demande à nicolas de soumettre le code suivant (en mode debug), toujours dans une session Guide :
Ce qui donne :
LIBDEBUG: Libname ORA12 ORACLE PATH="ORA12" USER="nicolas" SCHEMA='customer';
ERROR: ORACLE connection error: ORA-01005: null password given; logon denied.
ERROR: Error in the LIBNAME statement.
L’origine de l’erreur apparaît clairement : SAS essaye de se connecter à Oracle en utilisant les informations d’identification du compte SAS !
Il faut donc modifier son paramétrage SAS pour associer son compte « nicolas » au compte oracle « scott »
Il faut maintenant modifier la bibliothèque ORA 12 :
Cliquez sur l’onglet « Data Server »
Puis dans la zone « Informations d’authentification », cliquez sur « Nouvelle » puis dans « Assistant Nouvelle connexion » choisissez le domaine « oracle » :
L’utilisateur peut maintenant soumettre l’instruction libname de test, toujours avec l’option LIBDEBUG :
Ce qui donne :
LIBDEBUG: Libname ORA12 ORACLE PATH="ORA12" USER="scott" PASSWORD='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' SCHEMA='customer';
NOTE: Libref TEST was successfully assigned as follows:
Engine: META
Physical Name: ORA12A
Nous constatons que SAS utilise bien les identifiants de connexion définit sur le domaine« oracle» non plus ceux définit sur le domaine « DefaultAuth»
- Un administrateur (sasadm@saspw)
- Un utilisateur SAS Enterprise Guide (nicolas)

1 |
libname xe oracle user=scott pw=tiger path=ora12 shema=customer; |
Créer une bibliothèque Oracle dans les métadonnées.
L’administrateur SAS accepte volontiers et crée la bibliothèque Oracle en suivant les étapes ci-dessous :






1 |
LIBNAME ORA12 ORACLE PATH=ORA12 SCHEMA=customer USER=scott PASSWORD="{sas002}F77E0C345A42C6A753443DCE" ; |
Validation par l'utilisateur
L’administrateur a créé sa bibliothèque, il informe l’utilisateur et lui demande de tester. Comme au début de l'article, l'utilisateur se connecte à guide avec son compte nicolas. La bibliothèque ORA12 est bien visible dans SASApp mais inaccessible. Il obtient un message d'erreur lorsqu'il essaye de l'activer :
1 |
libname test meta library='ORA12' libdebug; |
Associer un compte utilisateur SAS à un compte utilisateur Oracle
Voilà « l’histoire » que nous voulons raconter.- L’utilisateur « nicolas » se connecter au serveur de métadonnées en utilisant son compte SAS
- Lorsqu’il essaye de se connecter à la base Oracle, ce n’est pas le compte SAS qu’il faut utiliser mais le compte « scott »





1 |
libname test meta library='ORA12' libdebug; |