Dans le cadre d’un mise en production ou d’exécution d’un script pour un schéma oracle, il arrive parfois qu’on a pas le mot de passe de l’utilisateur qui doit exécuter le script.
Solution de contournement :
il faut donc :
1) Obtenir le mot de passe de l’utilisateur en HEXADECIMAL ,
sqlplus /nolog
connect sys/syspwd as sysdba
select
‘alter user « ‘||username||' » identified by values »’||extract(xmltype(dbms_metadata.get_xml(‘USER’,username)),’//USER_T/PASSWORD/text()’).getStringVal()|| »’;’ old_password
from
dba_users
where
username = ‘SCOTT’;
resultat :
alter user « SCOTT » identified by values ’52F32BF9047E398E’;
2) Modifier le mot de passe avec un alter user.
sqlplus /nolog
connect sys/syspwd as sysdba
alter user scott identified by scott
3) Connexion et exécution des scripts
sqlplus /nolog
connect scott/scott
@execution_du_script.sql
4) Remise du mot de passe
sqlplus /nolog
connect sys/syspwd as sysdba
alter user « SCOTT » identified by values ’52F32BF9047E398E’;
Pourquoi cette solution me diriez vous ? :
Les mots de passe applicatifs sont parfois présent dans plusieurs scripts ou dans des fichiers de configurations en clair , réinitialiser un compte sans avoir une connaissance fonctionnelle des applications de productions
peux provoquer des incidents majeurs .