Oracle のエラー(ORA-28000/ORA-28001/ORA-28002)が表示されるのですが?
【 Ver.9/8 Premier/7.5 eBusiness 】
Oracle を外部 DB として SiteTracker を使用していると、ある日を境にして、SiteTracker の画面にアクセスした際、あるいは、nettracker コマンドを実行した際に以下の Oracle エラーのいずれかが表示されるようになる場合があります。
- ORA-28000: the account is locked
- ORA-28001: the password is expired
- ORA-28002: the password will expier within * days (「*」印の箇所は数値)
※ エラーメッセージは、日本語の場合もあります。
ORA-28000 エラーの例
これらのエラーは、それぞれ SiteTracker が使用する Oracle ユーザが以下の状態である事を示しています。
- a. ORA-28000: the account is locked の場合
- Oracle ユーザのアカウントがロックされている。
- b. ORA-28001: the password is expired の場合
- Oracle ユーザのパスワードが期限切れ。
- c. ORA-28002: the password will expier within * days の場合 (「*」印の箇所は数値)
- Oracle ユーザのパスワードがあと * 日で無効になる。
対処方法
Oracle の標準ツールである SQL*Plus や Oracle Enterprise Manager (OEM) を用いて、Oracle ユーザの状態を変更してください。
- a. ORA-28000: the account is locked の場合
- Oracle ユーザのアカウントのロックを解除する。
- b. ORA-28001: the password is expired の場合
- Oracle ユーザのパスワードを再設定する。
- c. ORA-28002: the password will expier within * days の場合 (「*」印の箇所は数値)
- Oracle ユーザのパスワードを再設定する。
なお、Oracle ユーザのパスワードを再設定する際には、それまで使用していたパスワードと同じものを設定してください。
Oracle ユーザのパスワードを変更した場合は、以下の手順で SiteTracker 側にもそのパスワードを反映させる必要があります。
- コマンドプロンプト(Windows の場合)もしくはターミナル(Unix 系 OS の場合)で、SiteTracker のインストールディレクトリに移動する。
- 以下の nettracker コマンドを実行する。
コマンド実行後は、画面の指示に従い、パスワードを変更してください。
備考: Oracle 11g のパスワード期限のデフォルト設定について
Oracle 11g は、Oracle ユーザのデフォルトのパスワード期限が 180 日に設定されています。(Oracle 10g までは無制限)
その為、SiteTracker の外部 DB として Oracle 11g を使用する場合、SiteTracker が使用する Oracle ユーザのパスワードを変更せずに使い続けると、Oracle ユーザが登録されてから 181 日目以降 ORA-28002 エラーが表示され、188 日目以降 ORA-28001 が表示されます。
デフォルトのパスワード期限は、SQL*Plus を用いて変更できます。
# sqlplus sys/パスワード@サービス名 as sysdba
SQL> alter profile default limit password_life_time unlimited; (← デフォルトのパスワード期限を無期限に変更)
SQL> alter user SiteTrackerが使用するOracleユーザ名 identified by パスワード; (← SiteTracker が使用する Oracle ユーザに反映)
SQL> alter user SiteTrackerが使用するOracleユーザ名 account unlock; (← SiteTracker が使用する Oracle ユーザのロック解除)
パスワードを変更した場合は、対処方法に記載した手順で SiteTracker 側にもそのパスワードも反映させる必要があります。
また、Oracle Enterprise Manager (OEM) が使用するアカウント (SYSMAN、DBSNMP) もデフォルトのパスワード有効期限は 180 日に設定されています。その為、Oracle 11g がインストールされてから 187 日経過すると OEM での接続ができなくなります。
SQL*Plus を用いて、これらのアカウントのパスワードを再設定すると OEM で接続できるようになります。
- # sqlplus /nolog
- SYSMAN でログイン。パスワードの再設定を要求されるので再設定。
connect sysman/旧パスワード - DBSNMP でログイン。パスワードの再設定を要求されるので再設定。
connect dbsnmp/旧パスワード
※ Oracle の初期設定や、SQL*Plus/Oracle Enterprise Manager (OEM) の使用方法等につきましては、オラクルのサポートにお問い合わせください。
※ 操作手順や用語は、基本的にSiteTracker 8 をベースに記載しています。