Oracle管理の異機種間接続を使用したOracle Databases以外のデータベース・リンクの作成

Oracle管理の異種間接続に対するAutonomous Databaseのサポートにより、Oracle以外のデータベースへのデータベース・リンクの作成が容易になります。

Oracle管理の異種間接続でデータベース・リンクを使用する場合、Autonomous DatabaseはOracle以外のデータベースへの接続を構成および設定します。

ノート

Oracle管理の異種間接続では、リモート・データベースでの問合せのみの接続がサポートされます。つまり、Oracle管理の異機種間接続を使用する場合、更新はサポートされていません。

Autonomous DatabaseでOracle管理の異種間接続を使用するための前提条件を次に示します:

  • ターゲット・データベースがパブリック・エンドポイント上にある場合、CA署名証明書による受信SSL/TLS接続を許可するようにデータベースを構成する必要があります。

    Oracle管理の異種接続では、プライベート・エンドポイントにあるターゲット・データベース・サービスへの接続がサポートされます(たとえば、サービスがプライベート・エンドポイントにあるときにOracle MySQL Database Serviceに接続できます)。プライベート・エンドポイントでOracle管理の異種間接続を使用してoracle以外のデータベースに接続する場合、接続はTCPプロトコルを使用し、ターゲット・データベースでSSL/TLSを構成する必要はありません。

    詳細は、Oracle管理の異種間接続を使用したプライベート・エンドポイントにあるOracle MySQLへのデータベース・リンクの作成を参照してください。

Oracle管理の異種間接続を使用してOracle以外のデータベースへのデータベース・リンクを作成するには、次を実行します:

  1. Autonomous Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定するusernameおよびpasswordは、データベース・リンク内で使用されるターゲット・データベースの資格証明です。

    次に例を示します。

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'AWS_REDSHIFT_LINK_CRED',
        username => 'nick',
        password => 'password'
      );
    END;
    /

    この操作では、暗号化された形式で資格証明がデータベースに格納されます。資格証明名には任意の名前を使用できます。credential_nameパラメータの指定は必須です。

    OAuth2を使用してGoogle Analytics、Google BigQuery、Youtube、ServiceNowまたはMicrosoft SharePointにアクセスするには、資格証明にgcp_oauth2という値を持つparamsパラメータが含まれている必要があります。

    次に例を示します。

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'SERVICENOW_OAUTH',
        params => JSON_OBJECT(
                     'gcp_oauth2' value JSON_OBJECT(
                            'client_id' value 'CLIENT_ID', 
                            'client_secret' value 'CLIENT_SECRET', 
                            'refresh_token' value 'Refresh_Token')));
    END;
    /

    詳細は、CREATE_CREDENTIALプロシージャを参照してください。

  2. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・データベースへのデータベース・リンクを作成します。

    たとえば、AWS Redshiftへのデータベース・リンクを作成するには:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name => 'AWSREDSHIFT_LINK', 
              hostname => 'example.com', 
              port => '5439',
              service_name => 'example_service_name',
              credential_name => 'AWS_REDSHIFT_LINK_CRED',
              gateway_params => JSON_OBJECT('db_type'  value 'awsredshift'),
              ssl_server_cert_dn => NULL);
    END;
    /

    service_nameは、Oracle以外のデータベースのデータベース名です。

    指定するgateway_paramsdb_type値は、サポートされている値のいずれかである必要があります:

    db_type値 データベース・タイプ

    awsredshift

    Amazon Redshift

    azure

    Microsoft SQL Server

    Azure SQL

    Azure Synapse Analytics

    db2

    IBM Db2

    google_analytics

    Google Analytics

    google_bigquery

    Google BigQuery

    hive

    Apache Hive

    mongodb

    MongoDB

    mysql

    MySQL

    mysql_community

    MySQL Community Edition

    postgres

    PostgreSQL

    salesforce

    Salesforce

    servicenow ServiceNow
    sharepoint Microsoft SharePoint

    snowflake

    Snowflake

    youtube

    YouTube

    Autonomous Databaseは、ターゲット・データベースへのセキュアな接続を自動的に構成して処理し、接続はエンドツーエンドで暗号化されます。Oracle管理の異種間接続は、一般的な信頼できるルート証明書と中間SSL証明書の大部分を含むウォレットで事前構成されています。したがって、ssl_server_cert_dnパラメータの値としてNULLを指定する必要があります。

    Oracle管理の異種間接続でデータベース・リンクを使用する場合のセキュリティを確保するために、接続ポートは制限されており、SSL/TLSが有効になっている必要があります。portパラメータでターゲット・データベース・ポートを指定します。

    サポートされるOracle以外のデータベース・タイプのリストは、Oracle管理の異種間接続のデータベース・タイプおよびポートを参照してください。

    HETEROGENEOUS_CONNECTIVITY_INFOビューは、サポートされているOracle異機種間接続タイプに関する情報を提供し、サポートされている各タイプのPL/SQLコード・サンプルを示します。詳細は、「異機種間接続情報およびサンプルへのアクセス」を参照してください。

    gateway_paramsパラメータを指定すると、一部のdb_type値に対して、追加のgateway_paramsパラメータがサポートされます。

    db_type 指定されたdb_typeでサポートされるゲートウェイ・パラメータ
    azure

    db_type値がazureの場合、NTLM/AD認証をサポートするためのauth_methodおよびdomainの2つのオプション・パラメータがあります。

    NTLMv2が構成されている場合は、auth_method=10を設定し、domainをWindowsドメイン値に設定します。

    google_analytics

    db_type値がgoogle_analyticsの場合、hostnameは使用されず、example.comなどの値を指定できます。

    db_type google_analyticsの場合、資格証明は、gcp_oauth2値(client_idclient_secretおよびrefresh_token)を指定してparamsパラメータを使用するOAuthタイプの資格証明である必要があります。詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    google_bigquery

    db_typegoogle_bigqueryの場合、パラメータprojectは有効です。このパラメータは、google_bigqueryのプロジェクト名を指定します。これは必須です。

    db_type値がgoogle_bigqueryの場合、hostnameは使用されず、example.comなどの値を指定できます。

    db_type google_bigqueryの場合、資格証明は、gcp_oauth2値(client_idclient_secretおよびrefresh_token)を指定してparamsパラメータを使用するOAuthタイプの資格証明である必要があります。詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    hive

    db_typehiveの場合、パラメータhttp_pathは有効です。このパラメータは、必要に応じて、Hiveインスタンスに接続するためのHttpPath値を指定します。

    salesforce

    db_type salesforcegateway_paramsパラメータを使用する場合は、security_tokenオプションを指定する必要があります。セキュリティ・トークンは、大文字と小文字が区別される英数字コードです。

    詳細は、セキュリティ・トークンのリセットを参照してください。

    db_type salesforcegateway_paramsパラメータを使用する場合は、正しいhostnameパラメータを指定する必要があります。

    Salesforceには、Salesforceサービス・アカウント用の2つの形式のURLが用意されています。

    • xxxx.develop.lightning.force.com形式のURL
    • 「プロファイルの表示」タブに表示されるxxxxmy.salesforce.com形式のURL。

    Oracle管理の異機種間接続では、hostnameパラメータ値のxxxxmy.salesforce.com形式のURLのみがサポートされます。

    servicenow

    ServiceNowに接続してデータを取得するには、ゲートウェイ・パラメータdirectory_nameおよびfile_nameを指定する必要があります。これらのパラメータは、JSONレスポンスをリレーショナル・モデルにマップするモデル・ファイル(REST構成ファイル)を指定します。モデル・ファイルは、JSONレスポンスを処理するためのエンドポイント、表マッピングおよびHTTPレスポンス・コードを指定します。詳細は、モデル・ファイルの構文およびモデル・ファイルの例を参照してください。

    db_type servicenowgateway_paramsパラメータを使用する場合、次の2つのオプションがサポートされています。

    • 基本認証: gateway_paramsパラメータdb_typeに値'servicenow'を指定し、ユーザー名/パスワード・タイプの資格証明とともにdirectory_nameおよびfile_nameパラメータを指定する必要があります。

    • OAuth 2.0認証: gateway_paramsパラメータdb_typeに値'servicenow'を指定し、directory_namefile_nameおよびtoken_uriパラメータをOAuth型の資格証明とともに指定する必要があります。

      db_type servicenowを使用したOAuth 2.0認証の場合、資格証明は、gcp_oauth2値が指定されたparamsパラメータ(client_idclient_secretおよびrefresh_token)を使用したOAuth型の資格証明である必要があります。詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    directory_nameパラメータは、ServiceNow REST構成ファイルでディレクトリを指定します。このディレクトリは、次のように作成できます。

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    ServiceNow REST構成ファイルを取得し、指定したディレクトリにダウンロードします。たとえば、次のとおりです。

    exec DBMS_CLOUD.get_object('servicenow_dir_cred',
         'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');

    file_name値を、ダウンロードしたREST構成ファイルの名前"servicenow.rest"に設定します。

    その後、基本認証またはOAuth2.0でServiceNow REST構成ファイルを使用できます。サンプルについては、HETEROGENEOUS_CONNECTIVITY_INFOビューを参照してください。

    sharepoint

    gateway_paramsパラメータをdb_type sharepointとともに使用する場合は、auth_uriscopeservice_urlおよびtoken_uriの値も指定します。

    db_type sharepointの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで指定する資格証明は、gcp_oauth2値(client_idclient_secretおよびrefresh_token)を指定したparamsパラメータを使用するOAuth型の資格証明である必要があります。詳細は、CREATE_CREDENTIALプロシージャに関する項を参照してください。tenant_id.sharepoint.com/.default offline_accessのrefresh_tokenを生成します。詳細は、「スコープの決定」およびOAuth 2.0認証を参照してください。

    db_type sharepointgateway_paramsの値を設定します。

    snowflake

    db_type snowflakegateway_paramsパラメータを使用する場合は、hostnameパラメータとしてSnowflakeアカウント識別子を使用します。この場合、ドライバはsnowflakecomupting.comを追加するため、ホスト名のこの部分を明示的に渡しません。Snowflakeアカウント識別子を検索するには、クラウド・プラットフォームおよびリージョン別のアカウント識別子フォーマットを参照してください。

    たとえば: Snowflakeアカウントの場合:

    https://example-marketing_test_account.snowflakecomputing.com

    hostname値を"example-marketing_test_account"に設定します。

    db_typeSNOWFLAKEの場合、オプションのパラメータroleschemaおよびwarehouseが有効です。これらの値は、デフォルト以外の別のスキーマ、ロールまたはウェアハウス値を指定します。たとえば:

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
    youtube

    YouTubeに接続してデータを取得するには、パラメータdirectory_nameおよびfile_nameを指定する必要があります。これらのパラメータは、JSONレスポンスをリレーショナル・モデルにマップするモデル・ファイル(REST構成ファイル)を指定します。モデル・ファイルは、JSONレスポンスを処理するためのエンドポイント、表マッピングおよびHTTPレスポンス・コードを指定します。詳細は、モデル・ファイルの構文およびモデル・ファイルの例を参照してください。

    db_type youtubeの場合、資格証明は、gcp_oauth2値(client_idclient_secretおよびrefresh_token)を指定してparamsパラメータを使用するOAuthタイプの資格証明である必要があります。詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    directory_nameパラメータは、YouTube REST構成ファイルを含むディレクトリを指定します。

    たとえば、このディレクトリを作成して必要なコンテンツを追加するには:

    1. Autonomous Databaseインスタンスにディレクトリを作成します:

      create or replace directory youtube_dir as 'YOUTUBE_DIR';
    2. 自動停止REST構成ファイルを取得し、指定したディレクトリにダウンロードします。たとえば:

      exec DBMS_CLOUD.get_object('youtube_dir_cred',
           'https://objectstorage.<...>/youtube.rest','YOUTUBE_DIR');
    3. file_name値を、ダウンロードしたREST構成ファイルの名前'youtube.rest'に設定します。

    その後、OAuth2.0でREST構成ファイルを使用できます。サンプルについては、HETEROGENEOUS_CONNECTIVITY_INFOビューを参照してください。

    詳細は、CREATE_DATABASE_LINKプロシージャを参照してください。

  3. データベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。

    たとえば:

    SELECT count(*) FROM sales@AWSREDSHIFT_LINK

    Google BigQueryでSELECTを使用するときに指定する表名は引用符で囲む必要があります。次に例を示します。

    SELECT count(*) FROM "sales"@GOOGLE_BIGQUERY_LINK
ノート

ステップ1で作成した資格証明(ターゲット・データベースの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明を次のように更新できます:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'AWS_REDSHIFT_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

ここで、passwordは新しいパスワードです。

この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。

その他の情報については、次のWebサイトを参照してください。

Oracle-Managed Heterogeneous Connectivityを使用したプライベート・エンドポイントにあるOracle MySQLへのデータベース・リンクの作成

Oracle管理の異種間接続に対するAutonomous Databaseのサポートにより、プライベート・エンドポイントにあるOracle MySQL Database Serviceへのデータベース・リンクを簡単に作成できます。Oracle管理の異種間接続でデータベース・リンクを使用する場合、Autonomous DatabaseはOracle MySQL Database Serviceへの接続を構成および設定します。

Oracle管理の異種間接続をプライベート・エンドポイントにあるOracle MySQL Database Serviceで使用するための前提条件を次に示します:

  • VCN内のOracle MySQL Database ServiceのプライベートIPを指すプライベートDNSゾーンを使用して、DNS名を作成します。プライベートDNSを参照してください。
  • 同じサブネット上にプライベート・エンドポイントを持つAutonomous Databaseを作成します。
  • ポート3306での受信接続を許可するように、Oracle MySQL Database ServiceのVCNを構成します。

Oracle管理の異種間接続を使用してプライベート・エンドポイントにあるOracle MySQL Database Serviceへのデータベース・リンクを作成するには、次を実行します:

  1. Autonomous Databaseで、Oracle MySQL Database Serviceにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定するusernameおよびpasswordは、データベース・リンク内で使用されるOracle MySQL Database Serviceの資格証明です。
    ノート

    credential_nameパラメータの指定は必須です。

    次に例を示します。

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'MYSQL_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    この操作では、暗号化された形式で資格証明がデータベースに格納されます。資格証明名には任意の名前を使用できます。

  2. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、Oracle MySQL Database Serviceへのデータベース・リンクを作成します。

    たとえば、データベース・リンクを作成するには:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name => 'MYSQL_LINK', 
              hostname => 'mysql.example.com', 
              port => '3306',
              service_name => 'mysql.example_service_name',
              ssl_server_cert_dn => NULL,
              credential_name => 'MYSQL_LINK_CRED',
              private_target => TRUE,
              gateway_params => JSON_OBJECT('db_type' value 'mysql'));
    END;
    /
  3. データベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。

    次に例を示します。

    SELECT count(*) FROM sales@MYSQL_LINK
ノート

ステップ1で作成した資格証明(ターゲット・データベースの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明を次のように更新できます:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'MYSQL_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

ここで、passwordは新しいパスワードです。

この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。

その他の情報については、次のWebサイトを参照してください。

Oracle管理の異種間接続のデータベース・タイプおよびポート

Oracle管理の異種間接続を使用してAutonomous Databaseから接続できるOracle以外のデータベースを示し、各データベース・タイプでサポートされているポート値をリストします。また、各データベース・タイプでサポートされているデータベース・バージョンを参照できるリンクも提供します。

ノート

Oracleでは、Progress DataDirectコネクタを使用します。「データベース・サポート」列には、各データベース・タイプでサポートされているデータベース・バージョンを確認できるProgress Webサイトへのリンクがあります。
データベース・タイプ db_type値 必須ポート データベース・サポート

Amazon Redshift

awsredshift

5439

Amazon Redshiftでサポートされているバージョン

Azure SQL

Microsoft SQL Server

Azure Synapse Analytics

azure

1433

Azure SQLでサポートされているバージョン

Azure Synapse Analytics対応バージョン

Apache Hive

hive

443

Hiveでサポートされているバージョン

Google Analytics

google_analytics

443

Google Analyticsでサポートされているバージョン

Google BigQuery

google_bigquery

443

Google BigQueryでサポートされているバージョン

Apache Hive

hive

443

Hiveでサポートされているバージョン

IBM Db2 11.5.6以上

IBM Db2 11.5.5以下

db2

25000

50000

IBM Db2のサポートされるバージョン

Microsoft SharePoint

sharepoint

443

Microsoft SharePointでサポートされているバージョン

MongoDB

mongodb

27017

MongoDBサポートされているバージョン

MySQL

mysql

3306

MySQLサポートされているバージョン

MySQL Community Edition

mysql_community

3306

 

PostgreSQL

postgres

5432

PostgreSQLサポートされているバージョン

Salesforce

salesforce

19937

Salesforceでサポートされているバージョン

ServiceNow

servicenow

443

ServiceNowサポートされているバージョン

スノーフレーク

snowflake

443

Snowflakeでサポートされているバージョン

ログイン

youtube

443 Youtube対応バージョン

異機種間接続情報およびサンプルへのアクセス

Oracle Autonomous Databaseは、Oracle以外のデータベースへのデータベース・リンクの異種接続情報を提供します。

HETEROGENEOUS_CONNECTIVITY_INFOビューは、サポートされているOracle異機種間接続タイプに関する情報を提供し、サポートされている各タイプのPL/SQLコード・サンプルを示します。

たとえば:

SELECT * FROM HETEROGENEOUS_CONNECTIVITY_INFO WHERE DATABASE_TYPE = 'hive';

HETEROGENEOUS_CONNECTIVITY_INFOビュー

HETEROGENEOUS_CONNECTIVITY_INFOビューには、データベース・リンクおよびOracle Managed Heterogeneous Connectivityを使用してPL/SQLに接続するための接続情報および例がリストされます。

Datatype 説明
DATABASE_TYPE VARCHAR2(32)

gateway_paramsパラメータで使用されるデータベース・タイプ値。

REQUIRED_PORT NUMBER

データベース・タイプでサポートされているポート値。

DESCRIPTION CLOB

DATABASE_TYPEの説明を指定します。

OPTIONAL_PARAMETERS VARCHAR2(1024)

DATABASE_TYPEの有効なオプション・パラメータを指定します。

SAMPLE_USAGE CLOB

DATABASE_TYPEのPL/SQLの使用例を示します。