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;
ユーザーが変更されました。