mercredi 22 septembre 2010

oracle : identification externe par le user Unix

Voici, un moyen simple de lancer des scripts SQL via des ksh sans avoir les mots de passe Oracle.

En fait, lors de la création de l'utilisateur, il est possible que le SGBD, en l’occurrence Oracle, délègue l'authentification au système d'exploitation.

Pour cela, il suffit de créer un user avec "identified externally". L'exemple suivant montre la création de l'utilisateur ENWOO.

Ce dernier pourra se logger sur Unix/Linux, et n'aura qu'a taper sous sqlplus (en mode silencieux) la commande "connect /"

$sqlplus /NOLOG
SQL>connect /


Voici un petit exemple de script:


#!/bin/ksh
ORACLE_SID=maBddOracle
# connection a oracle en mode silencieux
sqlplus -s /nolog 1>/dev/null << FIN
WHENEVER SQLERROR EXIT FAILURE;
# connection en deleguant l'authentification a l'OS
connect /
FIN
if [ $? != 0 ]
then
echo "Connexion impossible (${ORACLE})"
exit 1
fi



-- Create the user
create user ENWOO
identified externally
default tablespace TBSBOUSER
temporary tablespace TEMP
profile DEFAULT;
-- Grant/Revoke role privileges
grant tablespacedev to ENWOO;
grant tablespacesysconnect to ENWOO;
-- Grant/Revoke system privileges
grant unlimited tablespace to ENWOO;

Aucun commentaire:

Enregistrer un commentaire