OracleでORA-28000エラーが出た場合の対処方法

2018年12月17日パソコン関連Oracle,Tips,Windows,Windows10,データベース,パソコン関連

先日、とあるユーザーからエラーが出てきてシステムが使えない、という連絡がありました。

確認するとOracleのエラーで、ORA-28000エラーが出ている事を確認。対処方法を防備録がてらまとめてみました。

スポンサーリンク

発生したエラーと原因

ある日、ユーザーから「急にエラーが出てシステムが使えなくなった」との連絡が来ました。自分の環境で試したら下記画像のエラーが発生。確かに起動しませんでした。

ORA-28000エラーメッセージ
ORA-28000エラーメッセージ

このエラーはログインしようとしたユーザーアカウントが管理者にロックされたか、パスワードを連続失敗しプロファイルパラメータ FAILED_LOGIN_ATTEMPTS の閾値を超えたことが原因で発生します。

このエラーになるとログインが出来なくなるので該当ユーザーは何も出来なくなります。

対処方法

エラーはロックされたよ、という事ですので該当データベースの管理者または管理権限のあるアカウントでログインし、ロックを解除すれば解決します。

もしくはプロファイルのパラメータ PASSWORD_LOCK_TIME で設定されている日数が経過すれば解除されます。ですがもし値が「UNLIMITED」の場合は放置しても解決せず、解除する必要がありますのでご注意ください。

今回はSQLPLUSで接続して対応する方法を説明します。

対処手順

管理者でログインし、ロックされているユーザーアカウントを確定する為に下記のSQLを実行する

select username, account_status, profile from dba_users
  1. ユーザーリストが表示されるので「account_status」が「LOCKED」になっているアカウントを確認したら「USERNAME」を控える
  2. 先ほど確認した「USERNAME」で下記のSQLを実行する
 alter user [USERNAME] account unlock;

これでログインできる様になります。

おわりに

今回、実際は管理者のログインパスワードが分からなかったのでエスカレーションしています。

ですが担当者が結果放置した為、気がついたら翌日には解決していたという状況でした。とてもよろしくない対応ですが結果オーライです。

しかしスマートな解決のためには管理者権限が必要だけど、セキュリティ的には全くもってよろしくない。その辺のバランスは難しいなぁと思います。

スポンサーリンク