Oracleでアカウントがロックされたら
create: 2020-3-6
Oracle

ユーザがロックされちゃった!
そんなとーきーは~

SYS じゃなくても oracle ユーザで sqlplus が打てれば入れる

SYS じゃなくても oracle ユーザでsqlplusが呼び出せればとりあえず DB に接続できます。

sqlplus /nolog

ロックされたユーザの確認

次にSYSDBAにスイッチして、ユーザの状態を確認します。

-- sysdbaになる
connect / as sysdba
-- 対象ユーザの状態を確認(下記の例はSYSがユーザ名) ロックされたユーザは ACCOUNT_STATUS が LOCKEDになる
SELECT USERNAME,USER_ID,ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = 'SYS';

ユーザのアンロック

alter でアカウントステータスを変更します。

-- 対象ユーザをアンロック(下記の例はSYSがユーザ名)
ALTER USER SYS ACCOUNT UNLOCK;

これで作業は完了です。

ロックされている全ユーザを確認するには

ロックされている全ユーザを確認するには、ステータスが OPEN じゃないユーザを探せばよいです。
ロック時間で並び替えると、最近ロックされたユーザがわかりやすくなります。

SELECT USERNAME,ACCOUNT_STATUS,LOCK_DATE FROM DBA_USERS WHERE ACCOUNT_STATUS <> 'OPEN' ORDER BY LOCK_DATE;

パスワードわからないんだけど!

パスワードが分からなければ再設定。

-- SYSユーザのパスワードを `oracle` に変更する
ALTER USER sys IDENTIFIED BY oracle;

参考資料

オラクルアカウントロック解除の方法 - 日々のメモ
https://blog.goo.ne.jp/gets2004jp/e/a0e6b588906ef93ced19ec889422967e

ORACLE  アカウントがロックされたら - 朧の.NET の足跡
https://www.oborodukiyo.info/ORACLE/12c/ORA-AccountLock