ORA-28000: アカウントがロックされていますの原因と解除方法【Oracle】

  • URLをコピーしました!

本番環境で突然 ORA-28000 が発生し、アプリケーションが接続できなくなったことがあります。原因は単純で、パスワード入力失敗回数の超過によるアカウントロックでした。
結論から言うと、ALTER USER ユーザー名 ACCOUNT UNLOCK; で即時解除できます。ただし、ロックの根本原因を確認せずに解除だけを繰り返すと再発します。まずはプロファイル設定と失敗ログの確認が重要です。

目次

ORA-28000とは何か

ORA-28000 は、Oracle Database においてユーザーアカウントがロックされている場合に発生するエラーです。

エラーメッセージ
ORA-28000: the account is locked
(アカウントがロックされています)

SQL*Plus、アプリケーション接続、JDBC接続など、あらゆる認証処理で発生します。

ORA-28000が発生する主な原因

代表的な原因は以下の通りです。

原因内容確認方法
パスワード入力失敗回数超過PASSWORD_LOCK_TIME が設定されたプロファイルによりロックDBA_USERS
手動ロックDBAが ALTER USER ACCOUNT LOCK を実行DBA_USERS
プロファイル設定FAILED_LOGIN_ATTEMPTS の制限超過DBA_PROFILES
有効期限切れ後のロックパスワード期限切れ後の状態遷移DBA_USERS

最も多いのは FAILED_LOGIN_ATTEMPTS の超過です。

※ログイン時に
「ORA-01017:ユーザー名/パスワードが無効です。ログオンは拒否されました。」
と表示される場合は、認証情報そのものが誤っている可能性があります。詳しくは以下の記事で解説しています。

アカウントロック状態の確認方法

まずは現在の状態を確認します。

ACCOUNT_STATUS の主な値

ACCOUNT_STATUS意味
OPEN正常
LOCKEDロック中
LOCKED(TIMED)一時的ロック
EXPIRED & LOCKED期限切れ+ロック

LOCKED(TIMED) の場合は PASSWORD_LOCK_TIME の時間経過で自動解除されます。

アカウントロックの解除方法

即時解除する場合は以下を実行します。

パスワード変更も同時に行う場合

ALTER USER 対象ユーザー名 IDENTIFIED BY 新パスワード ACCOUNT UNLOCK;

本番環境では、パスワード変更を同時に行うほうが安全です。

プロファイル設定の確認方法

ロックの根本原因を確認するには、ユーザーに紐づくプロファイルを確認します。

次にプロファイル詳細を確認します。

主な設定項目

項目意味
FAILED_LOGIN_ATTEMPTSロックまでの失敗回数
PASSWORD_LOCK_TIMEロック継続時間(日単位)

例:PASSWORD_LOCK_TIME = 1 の場合、1日間ロックされます。

プロファイル設定を変更する方法

制限が厳しすぎる場合は調整できます。

ALTER PROFILE プロファイル名 LIMIT FAILED_LOGIN_ATTEMPTS 10;

無期限ロック解除にする場合

ALTER PROFILE プロファイル名 LIMIT PASSWORD_LOCK_TIME UNLIMITED;

ただし、セキュリティポリシーに従って設定してください。

アプリケーション側が原因の場合

実務では以下のケースが多いです。

・接続文字列のパスワードが古い
・バッチ処理で誤ったパスワードが固定されている
・複数サーバーから同時接続している

解除後にすぐ再ロックされる場合は、アプリケーション側ログを必ず確認してください。

再発防止策

・接続情報の一元管理
・パスワード変更時の設定反映確認
・FAILED_LOGIN_ATTEMPTS の適切な見直し
・監査ログの確認

ロックは症状であり、原因ではありません。必ず失敗原因を特定してください。

よくある質問(Q & A)

LOCKED(TIMED) は待てば解除されますか?

はい。PASSWORD_LOCK_TIME の設定時間経過後に自動解除されます。

SYS ユーザーも ORA-28000 になりますか?

通常の運用では発生しませんが、プロファイル設定によっては発生する可能性があります。

解除後すぐ再ロックされます。なぜですか?

誤ったパスワードで自動接続しているアプリケーションやバッチが原因の可能性が高いです。

まとめ

ORA-28000 はアカウントロックによって発生します。解除自体は ALTER USER ACCOUNT UNLOCK で簡単に行えますが、FAILED_LOGIN_ATTEMPTS や PASSWORD_LOCK_TIME の設定確認が重要です。解除だけで終わらせず、必ず原因を特定してください。特に本番環境では、再ロック防止策まで実施することが安定運用につながります。

よかったらシェアしてね!
  • URLをコピーしました!
0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
目次
0
あなたの考えが大好きです、コメントしてください。x