プライベート・エンドポイントにあるOracle以外のデータベースへの顧客管理の異種間接続によるデータベース・リンクの作成
Autonomous AI Database on Dedicated Exadata InfrastructureからOracle Database Gatewayへのデータベース・リンクを作成して、プライベート・エンドポイントにあるOracle以外のデータベースにアクセスできます。
Oracle Database Gatewayは、Oracle以外の特定システムへのアクセス用に設計されたゲートウェイです。Oracle Database Gatewayを使用すると、データの場所や格納方法を知らなくても、分散データベース・システム上のすべての場所にあるデータにアクセスできます。Autonomous AI DatabaseでOracle Database Gatewayのデータベース・リンクを使用すると、異機種間環境がサポートされ、Oracle以外のシステムのデータにアクセスするようにアプリケーションをカスタマイズする必要がなくなります。
ノート:プライベート・エンドポイント上の非Oracleデータベースへの顧客管理の異機種間接続によるデータベース・リンクの作成は、19cおよび23.6以上のバージョン23aiでのみサポートされています。
前提条件
パブリック・エンドポイントでAutonomous AI Databaseインスタンスからのデータベース・リンクを使用するには、次を実行します:
-
Oracle以外のデータベースにアクセスするようにOracle Database Gatewayを構成します。詳細は、『Oracle Database 19c Database Heterogeneous Connectivityユーザーズ・ガイド』のOracle Database Gatewaysに関する項または『Oracle Database 26ai Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。
接続先のデータベースによっては、対応するインストレーションおよび構成ガイドおよびゲートウェイ・ユーザーズ・ガイドを参照できます。
たとえば、Oracle Database Gateway for SQL Serverの場合は、次を参照してください:
-
『Oracle Database 19cインストレーションおよび構成ガイドfor Microsoft Windows』または『Oracle Database 26aiインストレーションおよび構成ガイドfor Microsoft Windows』のOracle Database Gateway for SQL Serverのインストールおよび構成に関する項
-
Oracle Database 19c Gateway for SQL Serverユーザーズ・ガイドのOracle Database Gateway for SQL Serverの概要に関する項またはOracle Database 26ai Gateway for SQL Serverユーザーズ・ガイドに関する項。
-
『Oracle Database 19cインストレーションおよび構成ガイドfor Microsoft Windows』または『Oracle Database 26aiインストレーションおよび構成ガイドfor Microsoft Windows』の「ゲートウェイ用のOracle Netの構成」。
-
-
Oracle Database Gatewayで受信リクエストを処理するようにOracle Net Listenerを構成します。
-
Oracle Database Gatewayで自己署名ウォレットを作成します。
さらに:
-
ターゲット・データベースは、ソース・データベースのOracle Cloud Infrastructure VCNからアクセスできる必要があります。たとえば、次の場合にターゲット・データベースに接続できます。
-
ターゲット・データベースはプライベート・エンドポイント上にあります。
-
ソース・データベースとターゲット・データベースの両方が、同じOracle Cloud Infrastructure VCNに存在します。
-
ソース・データベースとターゲット・データベースは、ペアになっている別のOracle Cloud Infrastructure VCNsにあります。
-
プライベート・エンドポイント上のターゲットの場合、
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。
-
-
プライベート・エンドポイントには、次のイングレスおよびエグレス・ルールを定義する必要があります:
-
ソース・データベースのサブネット・セキュリティ・リストまたはネットワーク・セキュリティ・グループにエグレス・ルールを定義して、TCPを介したトラフィックがターゲット・データベースのIPアドレスおよびポート番号に対して許可されるようにします。
-
ソース・データベースのIPアドレスから宛先ポートへのTCP経由のトラフィックが許可されるように、ターゲット・データベースのサブネット・セキュリティ・リストまたはネットワーク・セキュリティ・グループにイングレス・ルールを定義します。
-
プライベート・エンドポイント上の非Oracle Databasesへの顧客管理の異機種間接続(ウォレットなし)
Autonomous AI DatabaseからOracle Database Gatewayへのデータベース・リンクを作成して、ウォレット(TCPS)を使用して、またはウォレット(TLS)なしで、プライベート・エンドポイントにある非Oracleデータベースにアクセスできます。この項では、ウォレットなしのデータベース・リンクの作成について説明します。
データベース・リンクおよびTLS接続を使用して、プライベート・エンドポイント上のAutonomous AI Databaseインスタンスからターゲット・ゲートウェイへのデータベース・リンクを作成するには、次を実行します:
-
Autonomous AI Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。
DBMS_CLOUD.CREATE_CREDENTIALで指定するユーザー名およびパスワードは、データベース・リンク内で使用されるターゲット・データベースの資格証明です(ターゲット・データベースはOracle Database Gatewayを介してアクセスされます)。たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => 'password' ); END;/credential_nameパラメータの指定は必須です。usernameパラメータの文字はすべて大文字である必要があります。この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。
-
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・ゲートウェイに対するデータベース・リンクを作成します。たとえば:
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'SALESLINK', hostname => 'example.com', port => '1522', service_name => 'example_service_name', ssl_server_cert_dn => 'ssl_server_cert_dn', credential_name => 'DB_LINK_CRED', directory_name => NULL, gateway_link => TRUE, private_target => TRUE, gateway_params => NULL ); END;/接続がTCPベースのデータベース・リンク(ウォレットなし)として作成されている場合、
ssl_server_cert_dnパラメータはオプションです。directory_nameがNULLの場合、接続はTCPベースのデータベース・リンク(ウォレットなし)として作成されます。ターゲットの非Oracle Databaseがプライベート・エンドポイント上にある場合(つまり、データベース・リンクがVCN DNSサーバーで解決する必要があるホスト名にアクセスする場合)、
private_targetパラメータをTRUEに設定する必要があります。private_targetがTRUEの場合、hostnameパラメータは単一のホスト名である必要があります(プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名はサポートされていません)。gateway_linkがTRUEで、gateway_paramsがNULLの場合、データベース・リンクが顧客管理のOracleゲートウェイへのものであることを指定します。ADMIN以外のユーザーが
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、権限が必要です。詳細は、CREATE_DATABASE_LINKプロシージャを参照してください。
-
作成したデータベース・リンクを使用して、ターゲット・ゲートウェイのデータにアクセスします。
たとえば:
SELECT * FROM employees@SALESLINK;
ステップ1で作成した資格証明(Oracle Database Gatewayの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明は、次のように更新できます:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name =>'DB_LINK_CRED',
attribute =>'PASSWORD',
value=>'password'
);
END;
/
passwordは新しいパスワードです。
この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。
詳細は、UPDATE_CREDENTIALプロシージャを参照してください。
プライベート・エンドポイント上の非Oracle Databasesへの顧客管理の異機種間接続(ウォレット付き)
Autonomous AI DatabaseからOracle Database Gatewayへのデータベース・リンクを作成して、ウォレット(TCPS)を使用して、またはウォレット(TLS)なしで、プライベート・エンドポイントにある非Oracleデータベースにアクセスできます。この項では、ウォレットを使用したデータベース・リンクの作成について説明します。
プライベート・エンドポイント上のAutonomous AI Databaseインスタンスからターゲット・ゲートウェイへのデータベース・リンクを作成し、ウォレットに接続するには、次を実行します:
-
Oracle Database Gatewayの証明書を含むターゲット・ゲートウェイの自己署名付きウォレット(
cwallet.ssoなど)をオブジェクト・ストアにコピーします。ウォレット・ファイルは、データベース・ユーザーIDおよびパスワードと組み合せて、ターゲット・ゲートウェイを介して使用可能なデータにアクセスできるようにします。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。
-
Autonomous AI Databaseで、
cwallet.ssoを格納するオブジェクト・ストアにアクセスするための資格証明を作成してください。様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
-
ウォレット・ファイル
cwallet.ssoのディレクトリをAutonomous AI Databaseに作成します。たとえば:
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。
-
DBMS_CLOUD.GET_OBJECTを使用して、前のステップで作成したディレクトリDBLINK_WALLET_DIRにターゲット・ゲートウェイ自己署名付きウォレットをアップロードします。たとえば:
BEGIN DBMS_CLOUD.GET_OBJECT( credential_name =>'DEF_CRED_NAME', object_uri =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso', directory_name =>'DBLINK_WALLET_DIR' ); END; /この例では、
namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。ノート:このステップで使用する
credential_nameは、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・ゲートウェイにアクセスするための資格証明を作成します。 -
Autonomous AI Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。
DBMS_CLOUD.CREATE_CREDENTIALで指定するユーザー名およびパスワードは、データベース・リンク内で使用されるターゲット・データベースの資格証明です(ターゲット・データベースはOracle Database Gatewayを介してアクセスされます)。たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name =>'DB_LINK_CRED', username =>'NICK', password =>'password' ); END; /credential_nameパラメータの指定は必須です。usernameパラメータの文字はすべて大文字である必要があります。この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。
-
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・ゲートウェイに対するデータベース・リンクを作成します。たとえば:
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name =>'SALESLINK', hostname =>'example.com', port =>'1522', service_name =>'example_service_name', ssl_server_cert_dn =>'ssl_server_cert_dn', credential_name =>'DB_LINK_CRED', directory_name =>'DBLINK_WALLET_DIR', gateway_link =>TRUE, private_target =>TRUE, gateway_params =>NULL ); END; /directory_nameがNULLでない場合は、TCPSベースのデータベース・リンクが作成されます。ターゲットの非Oracle Databaseがプライベート・エンドポイント上にある場合(つまり、データベース・リンクがVCN DNSサーバーで解決する必要があるホスト名にアクセスする場合)、
private_targetパラメータをTRUEに設定する必要があります。private_targetがTRUEの場合、hostnameパラメータは単一のホスト名である必要があります(プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名はサポートされていません)。gateway_linkがTRUEで、gateway_paramsがNULLの場合、データベース・リンクが顧客管理のOracleゲートウェイへのものであることを指定します。ADMIN以外のユーザーが
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、権限が必要です。詳細は、CREATE_DATABASE_LINKプロシージャを参照してください。
-
作成したデータベース・リンクを使用して、ターゲット・ゲートウェイのデータにアクセスします。
たとえば:
SELECT * FROM employees@SALESLINK;
ステップ5で作成した資格証明(Oracle Database Gatewayの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明は、次のように更新できます:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name =>'DB_LINK_CRED',
attribute =>'PASSWORD',
value=>'password'
);
END;
/
passwordは新しいパスワードです。
この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。
詳細は、UPDATE_CREDENTIALプロシージャを参照してください。