ORA-28001: the password has expiredでOracleにつながらないよ
久々の更新でいきなりですが、VMで用意していた開発用のOracleDBに接続できなくなりました。
エラー内容は
ORA-28001: the password has expired
Oracle 11gからだとデフォルトで180日でパスワードが切れるらしい・・・
DBの管理ユーザでログインし、状況を確認。
ユーザの状態を確認
SELECT USERNAME,PROFILE FROM DBA_USERS WHERE USERNAME = '[ユーザ名]';
PROFILEの状態を確認
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = ‘PASSWORD_LIFE_TIME';
私の状態だとユーザのPROFILEがDEFAULTでDEFAULTだとLIMITが180日になっており、
ようするに180日で私のユーザのパスの期限が切れます。
以下のコマンドで期限切れのユーザを使えるようにするのと今後の有効期限をなくします。
デフォルトの有効期限を無期限に変更します。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ユーザのパスを変更します。
ALTER USER [ユーザ名] IDENTIFIED BY [新しいパスワード(同じパスでもいけます)];
ユーザのロックを解除
ALTER USER [ユーザ名] ACCOUNT UNLOCK;
みなさんも気をつけてください。