ORA-28001:パスワードが期限切れです

2018年6月27日


ITコーディネータのシュウです。

IMG_0655_2

ときおり散歩する公園で、かもがたくさん群れをなして歩いているのを見ました。珍しいと思って急いで撮ってみた写真です。こんなにたくさん歩いているとはびっくりですね。何かあったのかな~!

<本日の題材>
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_profile

・エラーでログインできないユーザのパスワードを再設定します。

ALTER USER ユーザ名 IDENTIFIED BY 新パスワード;

alter_user_pass

 ・ロックされているアカウントのロックを解除します。

alter_user_unlock

 以上で、再度 scott でログインできるようになります。

scott_login

今日は以上まで

 

☆おすすめ情報☆☆☆
 企業様で、ExcelやAccessのシステム化を考えておられましたら、既存のExcel、Accessをそのまま使えて、大事なデータはすべてDB保存するdbSheetをおすすめいたします。

dbSheetの紹介ホームページへ
Accessでお困りの企業様は、「Access対応版が提供できるソリューション」をご覧になってみてください。

dbSheetとITを取り巻く情報に関しましては「dbSheet千夜一夜」をご覧ください。
dbSheet千夜一夜ページへ
☆☆☆・・・☆☆☆・・・☆☆☆