Oracle Database を利用していると、ログイン時に
「ORA-28001: パスワードの有効期限が切れています」
というエラーに遭遇することがあります。
これは、データベースのセキュリティ機能として「パスワード有効期限」が設定されており、期限を過ぎたユーザがログインできなくなるために発生します。
この場合のエラーの原因と具体的な対応手順を解説します。
エラーの原因
Oracle データベースでは、ユーザごとに割り当てられた プロファイル(Profile) により、パスワード有効期限が管理されています。
典型的な原因は以下の通りです。
-
デフォルトの
DEFAULT
プロファイルで PASSWORD_LIFE_TIME が 180日 などに設定されている -
長期間パスワードを変更しておらず、期限切れとなった
-
運用上、期限管理を無効化していなかった
対応手順
1. SQL*Plus などからログインを試みる
期限切れの場合、通常のユーザではログインできません。
DBA 権限を持つユーザ(例: sys as sysdba
)でログインする必要があります。
2. パスワードをリセットする
対象ユーザのパスワードを変更します。
1 |
ALTER USER SCOTT IDENTIFIED BY Tiger2025; |
これでユーザは再びログインできるようになります。
3. パスワード有効期限を確認する
どのプロファイルが割り当てられているかを確認します。
1 |
SELECT username, profile FROM dba_users WHERE username='SCOTT'; |
次に、そのプロファイルの設定を確認します。
4. パスワード期限を延長・無効化する(必要に応じて)
運用上パスワード期限を無期限にしたい場合は、以下のように設定します。
注意点
-
セキュリティポリシー上、期限を無期限にするのは推奨されない場合があります。
-
運用規定に従い、定期的に強度の高いパスワードへ更新しましょう。
-
本番環境では、DBA以外のアカウントで誤って変更しないよう注意が必要です。
まとめ
「ORA-28001: パスワードの有効期限が切れています」は、パスワードの期限切れによるエラーです。
-
DBA権限でログイン
-
パスワード変更
-
プロファイル確認と調整
この流れで対応すれば、迅速に復旧できます。運用に合わせてパスワード有効期限の設定を見直すことも重要です。