+ YOSHIKI & Violet UK FAN SITE -Blind Tears- 管理人の日記 +

Blind Tears管理人こぅきの日記です☆彡
興味ある記事があればコメント・意見等お願いします☆

Oracle 11gからデフォルトでパスワード有効期限付きに

2009年02月19日 10時54分15秒 | PC関連
仕事上で経験したメモです。今回は本番環境で発生してしまった失敗談です。

昨年、とある案件で、ユーザに導入してもらったデータベースORACLE 11g において、当方が開発したシステムがある日突然データベースへ接続できなくなったという問い合わせを受け、調査したところ、ORA-28001のパスワード期限切れが発生していた。ネットで色々調べたところ、Oracle 11gからデフォルトでパスワードに有効期限180日が付いていることが判明。今まで8i~10gを触ってきていたが、11gについては新機能や変更点については調査したものの、こんな大事なことが漏れていた。。(本来は全ての変更点を把握するべきなのですが・・)

とりあえず、10gまで通り(パスワードは無期限有効)にする設定、ロックされたアカウントを復旧させる設定をメモっておく。
1. SQLPlusを起動:
   sqlplus /nolog
2. SYSDBAでログイン:
   conn /as sysdba
3. アカウントのプロファイルがデフォルトのままである場合は、デフォルトプロファイルの設定でパスワードを無期限有効に変更:
   alter profile default limit password_life_time unlimited;
4. ユーザのパスワードを再設定:
   alter user ユーザ名 identified by 新パスワード;
5. ロックされていたアカウントをロック解除
   alter user ユーザ名 account unlock;


これでアカウントは復旧したのだが、OEMが依然としてログインできない状況のまま。。インスタンスへのエージェント接続部にORA-28001が表示されたまま。
原因はOEMで使用されるアカウント(SYSMAN, DBSNMP)についても同様にパスワードの有効期限切れが発生していたためだった。これらについてもパスワードを再設定する必要あり。
1. sqlplus /nolog
2. SYSMANでログインすると、パスワードの再設定を要求されるので、再設定
  connect sysman/旧パスワード
3. DBSNMPについても同様
  connect dbsnmp/旧パスワード


※ちなみにこれまた11gからの変更点だが、ユーザの大文字・小文字が別物扱いとなっているので、注意。今回のDBはアプリケーションの関係上、10g以前同様に、大文字・小文字を区別しない設定を導入当初しているため、記述は全て小文字となっている。

以上