背景
自分の勉強用に用意したORACLEサーバを久しぶりに触ろうとしたところ「ORA-28001:パスワードが期限切れです。」
とエラーメッセージが表示されたので、対処した際の手順をまとめます。
原因
Oracle10gまではユーザのパスワードの有効期限はデフォルトで無期限だったが、
Oracle11gからはデフォルトで180日に設定されているため、180日たったときに起きてしまうらしい。
もう少し詳しく調べてみたところパスワードポリシーは次のようになっているみたいです。
引用:Oracle® Database 2日でデータベース管理者 12c リリース1 (12.1) 7.6.1 パスワード・ポリシーについて
・ユーザー・アカウントのパスワードは180日で自動的に期限切れとなります。
・パスワードの期限切れの7日後にユーザー・アカウントがロックされます。
・10回ログインに失敗すると、ユーザー・アカウントが1日ロックされます。
対処方法
デフォルトのプロファイルのパスワード有効期限を無期限にする。
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ユーザーパスワードの再設定
ALTER USER ユーザ名 IDENTIFIED BY 新パスワード
ユーザーアカウントロックの解除
ALTER USER ユーザ名 ACCOUNT UNLOCK
まとめ
お客様先で10g以上のORACLE使ってて、そこで発生しちゃったとかじゃなくてよかったなと思いました。