Par défaut, Oracle 11g et 12c demande de modifier le mot de passe des comptes utilisateurs tous les 180 jours. Il s’agit d’une sécurité imposée par Oracle pour sécuriser l’accès aux bases et au SGBD. S’il est facile de réactiver un compte après expiration du mot de passe, on peut préférer que les mots de passe users ne soient jamais expirés, pour éviter le blocage d’une application métier, d’une opération de sauvegarde ou d’un compte administrateur car les logins sys* sont également concernés par l’expiration par défaut des comptes Oracle.

Le message d’erreur que l’on peut rencontrer : ORA-28001 : The password has expired.

tutoriel Oracle erreur ora 28001 password expired mot de passe expiré

Ce tutoriel explique comment désactiver le délai de 180 jours avant l’expiration d’un mot de passe Oracle.

 

Vérifier la durée d’expiration des mots de passe utilisateurs

1. Ouvrir une session SQL Plus ou SQL Developer.

2. Taper la commande suivante :

SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_LIFE_TIME';

3. Le résultat indique le nombre de jours avant expiration d’un compte, dans la colonne LIMIT :

tutoriel Oracle expiration mot de passe

 

Supprimer l’expiration de compte Oracle

1. Toujours connecté au serveur Oracle avec SQL Plus ou SQL Developer.

2. Utiliser la commande suivante :

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

3. Le résultat doit être :

Profile DEFAULT modifié(e).

4. Vérifier que la modification ait été prise en compte en redemandant le PASSWORD_LIFE_TIME des DBA_PROFILES :

SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_LIFE_TIME';

On voit que la valeur est passée à UNLIMITED, c’est-à-dire sans illimité, sans limite en nombre de jours.

tutoriel Oracle expiration mot de passe

5. Cette modification ne s’applique pas aux comptes qui sont déjà expirés. S’il faut débloquer un login utilisateur, utiliser la commande suivante, décrite dans ce tutoriel.

ALTER USER username IDENTIFIED BY motdepasse ;