lundi 13 septembre 2010

11g: ORA-28002 et problème d'expiration de mot de passe

6 mois après avoir migré votre base en 11g il est fort probable que vous rencontriez le message d'erreur suivant après une simple tentative de connexion à votre base:

C:\>sqlplus scott/tiger

SQL*Plus: Release 11.2.0.1.0 Production on Lun. Sept. 13 12:19:01 2010

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

ERROR:
ORA-28002: le mot de passe expirera dans 7 jours
Ce problème est dû au fait qu'en 11g le profil DEFAULT impose certaines limites au niveau du password et notamment une durée de vie du mot de passe de 180 jours:

SQL> select * from dba_profiles where resource_name = 'PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180

Si vous ne voulez pas avoir à changer de password tous les 6 mois vous pouvez redéfinir le PASSWORD_LIFE_TIME du profil DEFAULT à UNLIMITED:

alter profile default LIMIT PASSWORD_LIFE_TIME  UNLIMITED;
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 SCOTT identified by TIGER;

10 commentaires:

  1. Merci Ahmed pour ces informations :)

    Samy BADAOUI

    RépondreSupprimer
  2. Bonjour,

    Merci pour cette information. Juste une question : j'avais oublié d'activer l'option illimité pour les mots de passe.
    J'ai donc fait le nécessaire pour mes schémas.
    Mais il y a t'il quelque chose à faire pour la dizaine de schémas systèmes Oracle : APEX_030200, APPQOSSYS, BI, FLOWS_FILES etc etc (je ne met pas tout la liste ...) Ils apparaissent dans SQL developer comme compte verrouillé et mot de passe expiré.

    RépondreSupprimer
    Réponses
    1. Bonjour,

      Lorsque tu effectues une installation par défaut d'Oracle, ces USERS sont crées lors du process d'install. Par soucis de sécurité, ces comptes sont (à l'exception de quelques uns) automatiquement verrouillés lors de l'install. Il revient au DBA de délocker ces comptes si besoin. Par exemple, si t'as besoin d'administrer du Oracle Text peut être qu'il te faudra déverrouiller le compte CTXSYS, mais si tu n'utilises jamais Oracle Text alors il vaut mieux laisser ce compte locké car il possède certains privilèges systèmes qui peuvent causer des soucis de sécurité.

      Supprimer
  3. Merci beaucoup pour l'info!

    RépondreSupprimer
  4. Merci pour ces informations qui m'ont été utiles.
    M 09

    RépondreSupprimer
  5. Un tres grand merci! Sebastien

    RépondreSupprimer
  6. Merci beaucoup pour ces infos et la clarté des explications. Kévin

    RépondreSupprimer
  7. Merci beaucoup pour cette réponse claire et précise. Régis

    RépondreSupprimer
  8. ou faire une modification avec la view user$.

    alter user toto identified by values 'Spare4;passwd';

    RépondreSupprimer