[Oracle] 11gのデフォルトのパスワードの有効期限 | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

Oracle 11g をしばらく使っていると、ある日突然ログイン時に以下のようなメッセージが出るようになりました。

ORA-28002: パスワードは、n日以内に期限切れになります。

このまま放置しているとやがて、

ORA-28001: ユーザーのアカウントが期限切れです。パスワードを変更する必要があります。

となります。

これは、Oracle 11g ではデフォルトでパスワードの有効期限が 180日と設定されているのが原因のようです。

旧バージョンと同じくパスワードの有効期限を無期限とするには、デフォルトプロファイルのパスワード有効期限を無期限に設定し、

alter profile default limit password_life_time unlimited;

既存アカウントのパスワードを再設定する必要があります。

alter user ユーザ名 identified by パスワード;

また、期限切れでアカウントがロックされてしまった場合は、ロックを解除する必要があります。

alter user ユーザ名 account unlock;

大文字小文字が区別されるようになったことは確認していたのですが、これは見落としていましたね。

思わぬ時限爆弾を仕込んでくれたものです。

旧バージョンと同じように無期限パスワードで運用したい場合は、データベース作成時に

alter profile default limit password_life_time unlimited;

を仕込んでおいたほうがいいようです。