Changement des mots de passe système pour Oracle

Avancé

Comment changer proprement un mot de passe d'un compte système d'Oracle ?

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Principe de base

Modifier un mot de passe chez Oracle ? Rien de plus simple... Il s'agit cependant de ne pas oublier l'impact que cela peut avoir sur les modules Oracle qui les utilisent et qui les stockent (bien entendu de façon cryptée) dans des fichiers.

Se connecter en tant que sys as sysdba

 
Sélectionnez
alter user sys identified by NouveauMotDePasse ;
alter user system identified by NouveauMotDePasse ;
alter user dbsnmp identified by NouveauMotDePasse ;
alter user sysman identified by NouveauMotDePasse ;

Pour dbsnmp, ne pas utiliser 8 caractères pour le mot de passe, ni des caractères autres que alpha-numériques compte tenu d'un bug répertorié.

II. Streams

Cas particuliers pour la réplication si vous utilisez Streams, et plus particulièrement Downstreams (capture et apply du côté cible).

Dans ce cas précis, le mot de passe de SYS doit être obligatoirement strictement identique sur le serveur source et le serveur cible.

III. Utilisateur dbsnmp

III-1. Agent 9i

Dans le fichier ${ORACLE_HOME}/network/admin/snmp_rw.ora, ajouter la ligne suivante

 
Sélectionnez
snmp.connect.{Nom global}.name=dbsnmp
snmp.connect.{Nom global}.password=NouveauMotDePasse

... puis redémarrer l'agent

Source: Metalink Note 168697.1

III-2. Agent 10g

Connecté en tant qu'admin et en mode console, stopper La console via

 
Sélectionnez
emctl stop dbconsole

Modifier le mot de passe en tant que sysdba

 
Sélectionnez
alter user dbsnmp identified by NouveauMotDePasse

Editer le fichier ${ORACLE_HOME}/`hostname`_${ORACLE_SID}/sysman/emd/targets.xml et modifier les lignes suivantes:

 
Sélectionnez
<Property NAME="UserName" VALUE="2ed7f792e30adc89" ENCRYPTED="TRUE"/>
<Property NAME="password" VALUE="c8d4082a472b36ae" ENCRYPTED="TRUE"/>

en

 
Sélectionnez
<Property NAME="UserName" VALUE="dbsnmp" ENCRYPTED="FALSE"/>
<Property NAME="password" VALUE="NouveauMotDePasse" ENCRYPTED="FALSE"/>

A noter que dans le cas d'une installation RAC, vous aurez chaque fois ces deux entrées à double. Une fois sous la rubrique

 
Sélectionnez
<Target TYPE="oracle_database" NAME="Votre Global Name">

... et une fois sous la rubrique

 
Sélectionnez
<Target TYPE="rac_database" NAME="Votre Global Name">

Redémarrer la console : ce redémarrage aura pour effet de crypter les valeurs précédemment en clair et de passer le flag ENCRYPTED à TRUE.

 
Sélectionnez
emctl start dbconsole

Pour déterminer si les nouveau paramètes ont bien été pris en considération lors du redémarrage, et pour des raisons évidentes de sécurité, allez à nouveau éditer le fichier ${ORACLE_HOME}/`hostname`_${ORACLE_SID}/sysman/emd/targets.xml pour vérifier que tout mot de passe soit bien crypté.

Source : Metalink, note 259387.1

IV. Utilisateur sysman

IV-1. Agent 10gR1

Connecté en tant qu'admin et en mode console, stopper OMS via

 
Sélectionnez
emctl stop oms

Modifier le mot de passe en tant que sysdba

 
Sélectionnez
alter user sysman identified by NouveauMotDePasse

Editer le fichier ${ORACLE_HOME}/sysman/config/emoms.properties et modifier les lignes suivantes:

 
Sélectionnez
oracle.sysman.eml.mntr.emdRepPwd=NouveauMotDePasse
oracle.sysman.eml.mntr.emdRepPwdEncryption=FALSE

Redémarrer OMS

 
Sélectionnez
emctl start oms

S'assurer que oracle.sysman.eml.mntr.emdRepPwd est maintenant encrypté.

Source : Metalink, note 259379.1

IV-2. Agent 10gR2

Connecté en tant qu'Oracle sur la console console, stopper La console via

 
Sélectionnez
emctl stop dbconsole

Dans le fichier ${ORACLE_HOME}/`hostname`_${ORACLE_SID}/sysman/config/emoms.properties, modifier les lignes en conséquent. Remplacez

 
Sélectionnez
oracle.sysman.eml.mntr.emdRepUser=SYSMAN
oracle.sysman.eml.mntr.emdRepPwd=d0355495a68cd5ae
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE

par

 
Sélectionnez
oracle.sysman.eml.mntr.emdRepUser=SYSMAN
oracle.sysman.eml.mntr.emdRepPwd=NouveauMotDePasse
oracle.sysman.eml.mntr.emdRepPwdEncrypted=FALSE

Redémarrer la console via

 
Sélectionnez
emctl start dbconsole

En rééditant le fichier ${ORACLE_HOME}/`hostname`_${ORACLE_SID}/sysman/config/emoms.properties, s'assurer que le mot de passe sous oracle.sysman.eml.mntr.emdRepPwd soit crypté et que le flag oracle.sysman.eml.mntr.emdRepPwdEncrypted soit sur TRUE.

V. Résolution de problèmes connus

Si vous avez effectué vos changements de mot de passe avant l'arrêt de la console, celle-ci peut avoir passé vos comptes - LOCKED(TIMED). Assurez-vous donc que les comptes SYSMAN et DBSNMP soient bien déverrouillés lorsque vous lancez votre console.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2006 fadace. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.