ORA-28001: the password has expired エラー

1. パスワード期限切れのエラー

ORA-28001: the password has expired

また、有効期限切れが近い場合も

ORA-28002: the password will expire within 7 days

となる。デフォルトだと 180日 でパスワードの有効期限切れになる。

2. 対策する

2.1. 接続

$ sqlplus.exe

SQL*Plus: Release 11.2.0.2.0 Production on 木 12月 6 15:37:00 2018

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

ユーザー名を入力してください: system
パスワードを入力してください:
ERROR:
ORA-28002: the password will expire within 7 days




Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL>

2.2. パスワード有効期限の確認

2.2.1. ユーザのプロファイル確認

まずはユーザに割り当てられているプロファイルを確認する。

SQL> SELECT USERNAME,PROFILE from DBA_USERS WHERE USERNAME='SYSTEM';

USERNAME
------------------------------------------------------------
PROFILE
------------------------------------------------------------
SYSTEM
DEFAULT

SYSTEM ユーザには DEFAULT のプロファイルが振られている。

2.2.2. DEFAULTプロファイルのパスワード有効期限の確認

SQL> SELECT * FROM dba_profiles WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

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

300日にしてみる

SQL> ALTER profile default limit password_life_time 300;


SQL> SELECT * FROM dba_profiles WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

PROFILE
------------------------------------------------------------
RESOURCE_NAME
----------------------------------------------------------------
RESOURCE_TYPE
----------------
LIMIT
--------------------------------------------------------------------------------
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
300

開発用に使用しているので無期限にしてみる

SQL> ALTER profile default limit password_life_time unlimited;



SQL> SELECT * FROM dba_profiles WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

PROFILE
------------------------------------------------------------
RESOURCE_NAME
----------------------------------------------------------------
RESOURCE_TYPE
----------------
LIMIT
--------------------------------------------------------------------------------
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
UNLIMITED

2.3. ユーザのパスワードを変更

SQL> ALTER USER <> IDENTIFIED BY <>;
<新パスワード> は旧パスワードと同じでも大丈夫

SYSTEM ユーザのパスワードを変更する。

SQL> ALTER USER SYSTEM IDENTIFIED BY password;

2.4. ユーザのロックを解除

ロックされている場合は解除する

ALTER USER <> ACCOUNT UNLOCK;

username ユーザのロックを解除する。

SQL> ALTER USER username ACCOUNT UNLOCK;