メモ的な何か

技術的な私のメモになる予定です。

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;


みなさんも気をつけてください。