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 :
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 qu’alphanumé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-A. Agent 9i▲
Dans le fichier ${ORACLE_HOME}/network/admin/snmp_rw.ora, ajouter la ligne suivante :
snmp.connect.{Nom global}.name=dbsnmp
snmp.connect.{Nom global}.password=NouveauMotDePasse
… puis redémarrer l'agent.
Source: Metalink Note 168697.1
III-B. Agent 10g▲
Connecté en tant qu'admin et en mode console, stopper la console via :
emctl stop dbconsole
Modifier le mot de passe en tant que sysdba :
alter
user
dbsnmp identified
by
NouveauMotDePasse
Éditer le fichier ${ORACLE_HOME}/`hostname`_${ORACLE_SID}/sysman/emd/targets.xml et modifier les lignes suivantes :
<Property
NAME
=
"UserName"
VALUE
=
"2ed7f792e30adc89"
ENCRYPTED
=
"TRUE"
/>
<Property
NAME
=
"password"
VALUE
=
"c8d4082a472b36ae"
ENCRYPTED
=
"TRUE"
/>
en
<Property
NAME
=
"UserName"
VALUE
=
"dbsnmp"
ENCRYPTED
=
"FALSE"
/>
<Property
NAME
=
"password"
VALUE
=
"NouveauMotDePasse"
ENCRYPTED
=
"FALSE"
/>
À noter que dans le cas d'une installation RAC, vous aurez chaque fois ces deux entrées en double. Une fois sous la rubrique :
<Target
TYPE
=
"oracle_database"
NAME
=
"Votre Global Name"
>
… et une fois sous la rubrique :
<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.
emctl start dbconsole
Pour déterminer si les nouveaux paramètres 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-A. Agent 10gR1▲
Connecté en tant qu'admin et en mode console, stopper OMS via :
emctl stop oms
Modifier le mot de passe en tant que sysdba :
alter
user
sysman identified
by
NouveauMotDePasse
Éditer le fichier ${ORACLE_HOME}/sysman/config/emoms.properties et modifier les lignes suivantes :
oracle.sysman.eml.mntr.emdRepPwd=NouveauMotDePasse
oracle.sysman.eml.mntr.emdRepPwdEncryption=FALSE
Redémarrer OMS :
emctl start oms
S'assurer que oracle.sysman.eml.mntr.emdRepPwd est maintenant encrypté.
Source : Metalink, note 259379.1
IV-B. Agent 10gR2▲
Connecté en tant qu'Oracle sur la console console, stopper la console via :
emctl stop dbconsole
Dans le fichier ${ORACLE_HOME}/`hostname`_${ORACLE_SID}/sysman/config/emoms.properties, modifier les lignes en conséquence. Remplacez :
oracle.sysman.eml.mntr.emdRepUser=SYSMAN
oracle.sysman.eml.mntr.emdRepPwd=d0355495a68cd5ae
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
par :
oracle.sysman.eml.mntr.emdRepUser=SYSMAN
oracle.sysman.eml.mntr.emdRepPwd=NouveauMotDePasse
oracle.sysman.eml.mntr.emdRepPwdEncrypted=FALSE
Redémarrer la console via :
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.