本ブログは、オラクル・クラウドの個人ブログの1つです。
初めに
本記事は、以下の問題点を解決するため、対処方法を提供します。
- ODIレポジトリ用のスキーマのパスワード期限が切れて(或いはパスワード変更後)、ODIスタジオからの接続ができなくなった。
問題現象
ODIスタジオから、レポジトリDBに接続しようとしますと、次のようなエラーが発生する可能性があります。
-
期限切れの場合のエラーメッセージ:
ORA-28001: the password has expired
エラーの詳細:
oracle.odi.core.config.MasterRepositoryResourceFailureException: ODI-10182: Uncategorized exception during repository access. Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLException: ORA-28001: the password has expired
-
DBパスワードが変更されたけど、ODI側にまだ反映していない場合のエラーメッセージ:
ORA-01017: Invalid username/password
検証環境
ODIバージョン:ODI Studio 12.2.1.4.0 (on OCI Windows VM)
Oracle DBバージョン: Oracle Base Database 19c Standard Edition (on OCI)
ステップ
1. DB側でスキーマのパスワードをリセットする
パスワード期限が切れた場合、このステップから実施してください。
リセット済(変更直後)の場合、次のステップから実施してください。
- 1-1. DBサーバにログインし、"oracle"ユーザに切り替えます。
[opc@db19c ~]$ sudo su - oracle
- 1-2. 管理者ユーザで、sqlplusにログインします。
[oracle@db19c ~]$ sqlplus / as sysdba
- 1-3. ODIレポジトリが所属するPDBに切り替えます。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DB19C_PDB1 READ WRITE NO
SQL> alter session set container=db19c_pdb1;
Session altered.
- 1-4. レポジトリ・スキーマのパスワードをリセットします。
SQL> alter user DEV_ODI_REPO identified by <New_Password>;
User altered.
- 1-5. パスワードの有効期限を確認します(オプション)。OCI上の「Oracle Base Database 19c SE」の場合、デフォルトでは60日間となります。
SQL> col USERNAME format a20
SQL> col PROFILE format a10
SQL> select USERNAME, PROFILE from DBA_USERS where USERNAME = 'DEV_ODI_REPO';
USERNAME PROFILE
-------------------- ----------
DEV_ODI_REPO DEFAULT
SQL> set linesize 100
SQL> col RESOURCE_NAME format a30
SQL> col RESOURCE_TYPE format a15
SQL> col LIMIT format a30
SQL> select PROFILE, RESOURCE_NAME, RESOURCE_TYPE, LIMIT
2 from DBA_PROFILES
3 where PROFILE = 'DEFAULT'
4 and RESOURCE_TYPE = 'PASSWORD';
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
---------- ------------------------------ --------------- ------------------------------
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 3
DEFAULT PASSWORD_LIFE_TIME PASSWORD 60
DEFAULT PASSWORD_REUSE_TIME PASSWORD 365
DEFAULT PASSWORD_REUSE_MAX PASSWORD 5
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD ORA12C_STRONG_VERIFY_FUNCTION
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
DEFAULT INACTIVE_ACCOUNT_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_ROLLOVER_TIME PASSWORD 0
9 rows selected.
- 1-6. パスワードの有効期限を変更したいなら、以下のコマンドを実施してください。
※、UNLIMITED
に指定すると、無期限に変更ですが、セキュリティの観点では非推奨です。
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 180;
Profile altered.
2. ODIスタジオでパスワードを変更する
2-1. マスター・レポジトリへの接続
ログイン画面で、編集ボタンをクリックし、接続情報を編集します。
パスワードを新しいものと差し替えて、「Master Repository Only」を選択し、接続をテストします。
接続成功になったら、OKをクリックし、画面を閉じます。
ログイン画面で、OKをクリックし、マスター・レポジトリに接続します。
2-2. ワーク・レポジトリへの接続
Topology -> Repositories -> Work Repositories -> 「WORKREP」をダブルクリックします。次のインフォメーションが表示されたら、OKをクリックし続行します。
「Connection Information」をクリックします。
パスワードを新しいものと差し替えて、「Test Connection」をクリックします。確認用メッセージが表示されたら、「Yes」をクリックし続行します。
エージェントを指定し、接続をテストしてみて、接続成功を確認できればOKです。
成功後、「Disconnect」をクリックし、マスター・レポジトリの接続を切断します。
もう一回、ログイン画面で編集ボタンをクリックし、接続情報を編集します。
ワーク・レポジトリを選択し、接続をテストします。接続成功後、OKをクリックし画面を閉じます。
ログイン画面で、OKボタンをクリックし、ワーク・レポジトリへの接続を開始します。
以上
関連記事
オラクル・クラウドの個人ブログ一覧
ODI On-PとODI MarketplaceとOCI Data Integrationの比較
OCI MarketplaceからODIインスタンスを作成する方法
Autonomous DBにODIレポジトリの作成方法
ODI Marketplace版のエージェントを起動と停止する方法
OCI Data Integrationを使用しオブジェクト・ストレージからOracle DBにデータをロードする