Watchuseek, The Most Visited Watch Forum Site ... In The World.

vendredi 9 janvier 2015

Résolution de l'erreur ORA-28002

Généralement les mots de passe des Base de données expirent après une période déterminée. Il est possible de remonter cette contrainte pour rendre le mot de passe d’un utilisateur défini permanent.

La conversation suivante explique comme rendre le faire et comment réssudre l'erreur ORA-28002.


[09/01/2015 12:04] T.R:
ERROR:
ORA-28002: the password will expire within 2 days

[09/01/2015 12:07] Dridi Akram:
alter profile DEFAULT limit password_life_time UNLIMITED; 
[09/01/2015 12:07] Dridi Akram:
avant ça
[09/01/2015 12:09] Dridi Akram:
il se peut que le user AB n'a pas le profile par défaut
[09/01/2015 12:09] Dridi Akram:
donc tu fais
[09/01/2015 12:09] Dridi Akram:
select profile from DBA_USERS where username = 'AB';

[09/01/2015 12:11] T.R:
SQL> select profile from DBA_USERS where username='AB';

PROFILE
------------------------------
DEFAULT
[09/01/2015 12:11] T.R:
c bon ya3ni
 [09/01/2015 12:12] Dridi Akram:
oui
[09/01/2015 12:12] Dridi Akram:
si tu as un autre profile tu adapte la 1er requete
[09/01/2015 12:13] T.R:
J'ai fait alter profile
[09/01/2015 12:13] T.R:
dv60-/dv60> sql

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jan 9 12:12:38 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-28002: the password will expire within 1 days

[09/01/2015 12:19] Dridi Akram:
ok
[09/01/2015 12:20] Dridi Akram:
Néanmoins, si le mot de passe est déjà arrivé dans la phase de PASSWORD_GRACE_TIME ou s'il a déjà expiré il faudra redéfinir un password pour votre user:
alter user AB identified by AB;
[09/01/2015 12:21] T.R:
okiiiiiiiiiiiiii
[09/01/2015 12:21] T.R:
thx
[09/01/2015 12:21] Dridi Akram:
:)
[09/01/2015 12:21] Dridi Akram:
wlcm

So,

Afin d'éviter l'expiration du mot de passe d'un utilisateur de votre base de données oracle (opération non recommandée sur les environnements de production), et si le compte n'est pas encore arrivé à la période de grace lancer cette requête sql:

Action 1: détermination du profil de l'utilisateur

 SQL> SELECT profile FROM dba_users WHERE username = 'USER1';
PROFILE
------------------------------
DEFAULT


Action 2: Positionnement de la propriété PASSWORD_LIFE_TIME

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Profile altered.


Cette procédure ne résoud pas le problème si l'utilisateur est déjà dans la période de grace.

Dans ce cas il faut ajouter cette action.

Action 3: Réinitialisation du mot de passe

SQL> alter user USER1 identified by "password";
User altered.