oracle

Oracleでパスワードの有効期限が切れたユーザを、パスワードの変更をせずに復活させる方法

背景

最近のOracleではユーザのパスワードの有効期限がデフォルトで設定されるようになっているため、それに気づかず運用していると、突如ユーザがログインできなくなるとか、アプリケーションサーバの起動に失敗するなどの災難に見舞われることになります。

有効期限が切れたユーザを復活させるには、パスワードの再設定が必要なのですが、諸々の理由でパスワードは変更したくないのだけれど、前のパスワードがわからない場合の解決策です。

パスワードハッシュでのパスワード変更

DBに格納されているパスワードハッシュの値を指定して、パスワードを変更すればOKです。

パスワードハッシュの取得
select spare4 from sys.user$ where name='<username>';
パスワードの変更
alter user <username> identified by values '<上記で取得したパスワードハッシュ値>';