IT Consulting Steffes

ORA-28002: the password will expire within 6 days

In einer 11.2er Datenbank haben die Passwörter angelegter user eine voreingestellte Laufzeit von 180 Tagen, sofern die default Werte nicht geändert wurden.
So kann es vorkommen, dass folgende Fehlermeldung beim einloggen erscheint:
(als Beispiel wurde hier der user system verwendet)

ORALIN01:/oracle/oracle max > sqlplus system/manager
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 1 17:44:59 2011
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
ERROR:
ORA-28002: the password will expire within 6 days

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Sofern die Übergangsfrist ( default ist 7 Tage ) noch nicht überschritten ist, kann man sich noch an der Datenbank anmelden, erhält jedoch die Fehlermeldung ORA-28002 incl. der Angabe der restlichen Passwort Laufzeit.
Im nächsten Schritt sollten wir uns für den jeweiligen user das zugehörige Profil und die Einstellungen näher ansehen:

SQL> select profile from dba_users where username='SYSTEM';
PROFILE
---------------------------------------------------------
DEFAULT


Nähere Informationen erhalten wir mit folgender Query:

col LIMIT for a25
col RESOURCE_NAME for a35
select LIMIT, RESOURCE_NAME from dba_profiles
where RESOURCE_NAME in ('PASSWORD_GRACE_TIME','PASSWORD_LIFE_TIME','PASSWORD_REUSE_MAX','PASSWORD_REUSE_TIME')
and PROFILE='DEFAULT';

LIMIT                   RESOURCE_NAME
----------------------- -----------------------------------
180                     PASSWORD_LIFE_TIME
UNLIMITED               PASSWORD_REUSE_TIME
UNLIMITED               PASSWORD_REUSE_MAX
7                       PASSWORD_GRACE_TIME

 Ok, wir sehen die besagte Passwort Laufzeit von 180 Tagen und default Übergangszeit von 7 Tagen.
Sehen wir uns an, wann der user angelegt wurde:

 
SQL> SELECT CREATED FROM DBA_USERS WHERE USERNAME = 'SYSTEM';
CREATED
---------------
01-SEP-10


Stellen wir die "PASSWORD_LIFE_TIME" um und kontrollieren die EInstellung:

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


col LIMIT for a30
col RESOURCE_NAME for a35
select LIMIT, RESOURCE_NAME from dba_profiles
where RESOURCE_NAME in ('PASSWORD_GRACE_TIME','PASSWORD_LIFE_TIME','PASSWORD_REUSE_MAX','PASSWORD_REUSE_TIME')
and PROFILE='DEFAULT';

LIMIT                          RESOURCE_NAME
------------------------------ -----------------------------------
UNLIMITED                      PASSWORD_LIFE_TIME
UNLIMITED                      PASSWORD_REUSE_TIME
UNLIMITED                      PASSWORD_REUSE_MAX
7                              PASSWORD_GRACE_TIME



Soweit ok, wir haben die Password Laufzeit auf unendlich eingestellt, aber ein erneuter login Versuch erzeugt noch immer die gleiche Fehlermeldung:

ORALIN01:/oracle/oracle max > sqlplus system/manager
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 1 18:04:42 2011
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
ERROR:
ORA-28002: the password will expire within 6 days

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

Es ist notwendig, das Password noch mal neu zu setzen (es kann auch der alte Wert verwendet werden):


SQL>
SQL> alter user system identified by manager;
User altered.

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options



Der neue login mit dem verwendeten user funktioniert jetzt wieder:

ORALIN01:/oracle/oracle > sqlplus system/manager
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 1 18:05:10 2011
Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options



zurück zur Übersicht: Oracle Database Fehler