oracle 技術情報

ORA-28001 パスワードが期限切れですの対処方法

ORA-28040 一致する認証プロトコルがありませんの対処方法

こんにちは、shimashima(しましま)です。

先日、Oracle19cでORA-280001のエラーが発生したので、その対処法を共有させてもらいます。

ORA-28001

パスワードが期限切れです

the password has expired

Oracleを扱っていると、過去に何回かでくわすエラーですね。

対策を打てば、次以降からは出てこないので、最近19cに変えてからこのエラーが出てきて、対策をすっかり忘れていたので、備忘録です。

理由は簡単で、初期だとパスワードの有効期限が180日なので、それがすぎればそのままのメッセージが出てきているということです。

パスワードを変更すれば良いのですが、毎回180日毎に変えるのも面倒なので、パスワードの有効期限を無期限に変更します。

 

対処方法は、簡単です。

検索すると、色々出てきますからね。

みなさん良くsqlplusで接続されている方が多いのですが、分かりやすくSQLDeveloperでの操作で説明します。

SQLDeveloperは無償でOracleから提供されているGUIツールです。

接続設定等は割愛します。

 

2つのSQL文を実行するだけです。

まず、180日毎にパスワード変更するのは面度なので、パスワードの有効期限を無期限に変えてしまいます。

パスワードの有効期限を無期限に変更するSQL

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
パスワードを無期限に変更するSQL

パスワードを無期限に変更するSQL

しましま
SQLDeveloperのSQLワークシート上で実行するだけです。sql/plusとかより、簡単ですよね。

次に180日過ぎていると、アカウントがロックされている可能性もあるので、アカウントのロックを解除します。

アカウントのロックを解除するSQL

ALTER USER ユーザー名 ACCOUNT UNLOCK;
アカウントのロックを解除するSQL

アカウントのロックを解除するSQL

しましま
ユーザー名のところは、適時直してくださいね。

 

これで接続できた!と思ったら、今度は次のエラーが発生しました。

ORA-01017

ユーザー名/パスワードが無効です;ログオンは拒否されました

Invalid username/password; logon denied.

しましま
え?パスワードを間違えた!?

と思って、何度もパスワードを打ち直しましたが、同じエラーが出て、ついにはパスワードを規定回数間違えて、ユーザーがロックされました。

アカウントのロックの解除は、先ほどの以下のSQLを実行すれば、すぐに直るのですが。

アカウントのロックを解除するSQL

ALTER USER ユーザー名 ACCOUNT UNLOCK;

そんなわけで、なんだろうと調べていたら、再度パスワードを変更する必要があったみたいです。

前のパスワードは無期限にする前のパスワードなんだから、180日で使えなくなっているので、そりゃそうだってことです。

そこで、SQLで以下を実行します。

パスワードを変更するSQL

ALTER USER ユーザ名 IDENTIFIED BY パスワード;
パスワードを変更するSQL

パスワードを変更するSQL

しましま
ユーザー名とパスワードのところは、適時直してくださいね。
しましま
パスワードは前と同じパスワードでも問題なかったです。

そして、再度クライアントからアクセスすると、エラー無く、無事に接続できました!

しましま
今回の手順は調べれば結構でてきますが、sql/plusで実行されている方が多くて、見た目で分かりやすいSQLDeveloperでやっている人がいなかったので、記事にしました。SQLDeveloperの方が見た目で分かるから便利だと思うんだけどなぁ。

 

-oracle, 技術情報

© 2021 shimashima.com