OracleでORA-28000エラーが出た場合の対処方法
先日、とあるユーザーからエラーが出てきてシステムが使えない、という連絡がありました。
確認するとOracleのエラーで、ORA-28000エラーが出ている事を確認。対処方法を防備録がてらまとめてみました。
発生したエラーと原因
ある日、ユーザーから「急にエラーが出てシステムが使えなくなった」との連絡が来ました。自分の環境で試したら下記画像のエラーが発生。確かに起動しませんでした。
このエラーはログインしようとしたユーザーアカウントが管理者にロックされたか、パスワードを連続失敗しプロファイルパラメータ FAILED_LOGIN_ATTEMPTS の閾値を超えたことが原因で発生します。
このエラーになるとログインが出来なくなるので該当ユーザーは何も出来なくなります。
対処方法
エラーはロックされたよ、という事ですので該当データベースの管理者または管理権限のあるアカウントでログインし、ロックを解除すれば解決します。
もしくはプロファイルのパラメータ PASSWORD_LOCK_TIME で設定されている日数が経過すれば解除されます。ですがもし値が「UNLIMITED」の場合は放置しても解決せず、解除する必要がありますのでご注意ください。
今回はSQLPLUSで接続して対応する方法を説明します。
対処手順
管理者でログインし、ロックされているユーザーアカウントを確定する為に下記のSQLを実行する
select username, account_status, profile from dba_users
- ユーザーリストが表示されるので「account_status」が「LOCKED」になっているアカウントを確認したら「USERNAME」を控える
- 先ほど確認した「USERNAME」で下記のSQLを実行する
alter user [USERNAME] account unlock;
これでログインできる様になります。
おわりに
今回、実際は管理者のログインパスワードが分からなかったのでエスカレーションしています。
ですが担当者が結果放置した為、気がついたら翌日には解決していたという状況でした。とてもよろしくない対応ですが結果オーライです。
しかしスマートな解決のためには管理者権限が必要だけど、セキュリティ的には全くもってよろしくない。その辺のバランスは難しいなぁと思います。
ディスカッション
コメント一覧
まだ、コメントがありません