『ORA-28000:アカウントがロックされています。』エラーの原因
ORA-28000は、以下の要因で発生します。
- データベース管理者がアカウントをロックした
- ログイン失敗できる許容回数の上限を超えてパスワードを誤って入力した
「2.」ですが、そんなにパスワードを間違えることがあるか?と思いますが、セキュリティの観点で定期的にパスワード変更をしている場合、変更したパスワードが周知されておらず、ロックされてしまったというケースに何度か遭遇したことがあります。
パスワード間違いの場合は、以下のようなエラーが表示されます。
許容回数を超えてパスワード間違いをすると、アカウントがロックされて以下のエラーが表示されます。
『ORA-28000:アカウントがロックされています。』エラーの解消方法
管理者権限でログインして、ロックされたユーザーのアカウントを解除することでエラーが解消されます。
1.管理者権限でログインする
sqlplus / as sysdba
2.アカウントの状態を確認する
select username, account_status, profile from dba_users where username = 'TESTUSER';
※TESTUSERというアカウントがロックされたのでusername = 'TESTUSER'を指定。
LOCKED(TIMED)がログイン失敗再試行回数の上限をオーバーした場合のACOUNT_STATUSになります。
3.アカウントのロックを解除する
alter user TESTUSER account unlock;
※TESTUSERのアカウントをアンロックします。
4.ACOUNT_STATUSがOPENになったことを確認する
select username, account_status, profile from dba_users where username = 'TESTUSER';
今まで通りにログインできることを確認して、終了となります。
パスワードの期限切れのエラーは以下で紹介しています。
auroralights.hatenablog.com