ITコーディネータのシュウです。
ときおり散歩する公園で、かもがたくさん群れをなして歩いているのを見ました。珍しいと思って急いで撮ってみた写真です。こんなにたくさん歩いているとはびっくりですね。何かあったのかな~!
<本日の題材>
ORA-28001:パスワードが期限切れです。
今回は、昨日までOracleを使って問題なかったのに、ログインしようとしたら急に「ORA-28001:パスワードが期限切れです。」というエラーが出てログインできなくなるという事態に遭遇したことがあったので、それについて情報としてアップします。
これは、今までOracle10gを使っていたが、Oracle11gにバージョンアップした場合などによく起きることがあります。理由としては、Oracle10gまではユーザのパスワードの有効期限はデフォルトで無期限であったものが、Oracle11gからはデフォルトで180日に設定されているため、180日たったときに起きてしまうというものです。
さすがにOracle11gがリリースされてかなりの期間が立ちますので、既に知っておられる方が多いかとは思いますが、意外とこのエラーに出くわした方が多いのではないでしょうか。
セキュリティ上はたしかにパスワードを定期的に変更したほうがよいのでしょうが、開発時やテストなどでは無期限にしてアクセスしたい場合も多いと思います。
Oracle11gの場合、「プロファイル」という、ユーザーに対するシステムリソースやパスワードの制限の設定をまとめたものをユーザに割り当てることで、一括してパスワードの制御などを行うことができるようになっており、パスワードの有効期間もそこで設定されます。
ですので、デフォルトのプロファイルが設定されているユーザであれば、このときの対処法の例としては、
1)デフォルトのプロファイルのパスワード有効期限を無期限にする
2)エラーでログインできないユーザのパスワードを再設定する
3)ロックされているアカウントのロックを解除する
というかたちで対応はできることになります。
例として、SQL Plusで行う場合を以下に記載します。
DOSプロンプトからSQL Plusを起動。
sqlplus sys/[パスワード]@接続文字列 as sysdba
・デフォルトのプロファイルのパスワード有効期限を無期限にします。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
・エラーでログインできないユーザのパスワードを再設定します。
ALTER USER ユーザ名 IDENTIFIED BY 新パスワード;
・ロックされているアカウントのロックを解除します。
以上で、再度 scott でログインできるようになります。
今日は以上まで
にほんブログ村
ありがとうございました。
助かりました!