機械翻訳について

JDBC Thin接続およびウォレット

Autonomous Data WarehouseではTransport Layer Security (TLSv1.2)を使用するセキュアな接続が要求されます。 JDBC Thinドライバを使用するJavaアプリケーションには、Oracle WalletまたはJava KeyStore (JKS)が必要です。 ウォレットおよびキーストア・ファイルは、Oracle Cloud Infrastructureコンソールで「DB接続」をクリックすると使用可能なクライアント資格証明.zipファイルに含まれています。

JDBC Thinドライバ接続の前提条件

JDBC Thinドライバを使用するアプリケーションでは、Autonomous Data Warehouseデータベースに接続する際に、Oracleウォレット、Java KeyStore (JKS)ファイルなどのOracleデータベース資格証明が必要です。

Autonomous Data Warehouseデータベースに接続する前に、次のステップを実行します:

  1. Autonomous Data Warehouseのプロビジョン: Autonomous Data Warehouseデータベースを作成し、データベース資格証明(ユーザー名およびパスワード)を取得します。
  2. クライアント資格証明をダウンロードする: wallet_ databasename .zipを安全なロケーションに解凍します。 認可されたユーザーのみがこれらのファイルにアクセスできることを確認してください。

    Autonomous Data Warehouseのクライアント資格証明のダウンロードの詳細は、「クライアント資格証明(ウォレット)のダウンロード」を参照してください。

  3. JDKのバージョンでセキュリティを確認してください: JDK11、JDK10またはJDK9を使用している場合、このステップを行う必要はありません。 JDKバージョンがJDK8u162より小さい場合は、JCE Unlimited Strength Jurisdiction Policy Filesをダウンロードする必要があります。 インストール・ノートについては、READMEファイルを参照してください。 「Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8ダウンロード」からJCEファイルをダウンロードします。
  4. JDBCドライバ・バージョンの確認: Oracle Database 18c (18.3) JDBCドライバ& UCPダウンロードから最新の18.3 JDBC Thinドライバ(ojdbc8.jarおよびucp.jar)をダウンロードします。 最新の18.3 JDBCドライバ(以上)を使用して、接続を簡略化し、構成の簡単なステップを提供する最近の拡張機能を利用します。 追加のjarも必要です: Oracleウォレットで使用するためのoraclepki.jarosdt_core.jarおよびosdt_cert.jar

JDBC ThinドライバでのJDBC URL接続文字列の使用

接続文字列は、クライアント資格証明のダウンロードの一部であるファイルtnsnames.oraにあります。 tnsnames.oraファイルには、high, mediumおよびlowとして識別可能な事前定義済サービスが含まれています。 各サービスには、それぞれ独自のTNS別名と接続文字列があります。

詳細は、「Autonomous Data Warehouseの事前定義データベース・サービス名」を参照してください。

dbname_highをTNS別名として、接続文字列をtnsnames.oraのサンプル・エントリを次に示します:
dbname_high= (description=
      (address=(protocol=tcps)(port=1522)(host=adw.example.oraclecloud.com))(connect_data=(service_name=adw_jdbctest_high.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adw.oraclecloud.com,OU=Oracle
      US,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))

次のいずれかの方法で、プロパティTNS_ADMINを使用してtnsnames.oraのロケーションを設定します:

  • 接続文字列の一部として(18.3以上のJDBCドライバの場合のみ)
  • システム・プロパティとしての-Doracle.net.tns_admin
  • 接続プロパティ(OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN)として

18.3 JDBCドライバを使用すると、接続文字列にはTNS別名とTNS_ADMIN接続プロパティが含まれます。

18.3 JDBCドライバを使用するサンプルの接続文字列(Linux):

DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"

18.3 JDBCドライバを使用するサンプルの接続文字列(Windows):

DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"

TNS_ADMIN接続プロパティでは、次の内容を指定します:

  • tnsnames.oraのロケーション。
  • Oracle Wallet (ewallet.ssoewallet.p12)またはJava KeyStore (JKS)ファイル(truststore.jkskeystore.jks)のロケーション。
  • ojdbc.propertiesのロケーション。 このファイルには、Oracle WalletsまたはJava KeyStore (JKS)の使用に必要な接続プロパティが含まれています。

注意:

12.2.0.1または以前JDBCドライバを使用している場合、接続文字列にはTNSの別名のみが含まれます。 古いJDBCドライバを使用して接続するには:

  • tnsnames.oraのロケーションを、-Doracle.net.tns_adminを含むシステム・プロパティまたは接続プロパティ(OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN)として設定します。
  • TNS_ADMINに加えて、ウォレットまたはJKSに関連する接続プロパティを設定します。

たとえば、この場合、TNS_ADMIN部分を含まないDB_URLでTNS別名を次のように設定します:

DB_URL=”jdbc:oracle:thin:@dbname_high”

18.3 JDBCドライバとのJDBC接続の使用

JDBC Thinドライバを使用するアプリケーションは、Oracle WalletsまたはJava KeyStore (JKS)を使用してAutonomous Data Warehouseデータベースに接続できます。

Oracle Walletの使用

18.3 JDBC Thinドライバを使用して、Autonomous Data WarehouseへのJava接続にOracle Walletを使用する場合、次を実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続の前提条件を参照してください。

  2. 接続の確認: Javaプログラム、サーブレットまたはIDEを使用して、Autonomous Data Warehouseデータベースへの接続を検証できます。 単純なテストでは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードし、必要なTNS別名を持つように接続URLを更新して、TNS_ADMINを渡し、tnsnames.oraおよびウォレット・ファイルのパスを提供します。 また、サンプル・ソース・コード内では、データベースのユーザー名とパスワードが更新されます。 次に例を示します。

    DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"

    注意:

    Microsoft Active Directoryを「Autonomous Data Warehouseデータベース」とともに使用している場合、サンプル・ソース・コード内で、Active Directoryユーザー名でユーザー名を更新し、Active Directoryユーザー・パスワードでパスワードを更新します。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. ウォレットのロケーションの設定: プロパティ・ファイルojdbc.propertiesは、ウォレット関連の接続プロパティを使用して事前にロードされています。

    oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))

    注意:

    ojdbc.propertiesファイルは変更しません。 TNS_ADMINの値によってウォレットのロケーションが決定されます。
  4. コンパイルおよび実行: サンプルをコンパイルおよび実行して、接続を成功させます。 classpathoraclepki.jarosdt_core.jarおよびosdt_cert.jarがあることを確認してください。 次に例を示します。

    java –classpath
          ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample

注意:

Autonomous Data Warehouseダウンロードされたクライアント資格証明zipファイルの自動ログイン・ウォレット部分では、アプリケーションでユーザー名/パスワード認証を使用する必要がなくなります。

Java KeyStoreの使用

Java KeyStore (JKS)および18.3 JDBC Thinドライバを使用してAutonomous Data Warehouseに接続するには、次のステップを実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続の前提条件を参照してください。

  2. データベース詳細の準備完了: Javaプログラム、サーブレット、またはideを使用して、Autonomous Data Warehouseデータベースへの接続をチェックできます。 簡単なテストとは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードすることです。 このサンプルでは、次に示す接続URLを使用します。 接続DB_URLには、tnsnames.oraに存在するdbname_highなど、TNS別名が含まれていることに注意してください。 URLに示すように、TNS_ADMINプロパティを介してtnsnames.oraファイルのパスを指定できます。 Autonomous Data Warehouseデータベースに関連するデータベース・ユーザー名およびパスワードを使用してください。

    DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"

    注意:

    Autonomous DatabaseでMicrosoft Active Directoryを使用している場合は、必ずActive Directoryユーザー名とActive Directoryユーザー・パスワードを使用するようにサンプル・ソース・コードを変更してください。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. JKSに関連する接続プロパティを設定: JKSに関連する接続プロパティをojdbc.propertiesファイルに追加します。 keyStoreおよびトラスト・ストアのパスワードは、Autonomous Data Warehouseサービス・コンソールからクライアント資格証明.zipファイルをダウンロードする際に指定されるパスワードです。

    Oracle WalletではなくSSL接続を使用するには、次のように、キーストアおよびトラスト・ストアのファイルおよびそのパスワードをojdbc.propertiesファイルで指定します:

    
    # Properties for using Java KeyStore (JKS)
    oracle.net.ssl_server_dn_match=true
    javax.net.ssl.trustStore==${TNS_ADMIN}/truststore.jks
    javax.net.ssl.trustStorePassword=password
    javax.net.ssl.keyStore==${TNS_ADMIN}/keystore.jks
    javax.net.ssl.keyStorePassword=password

    注意:

    ojdbc.propertiesでは、ウォレット関連のプロパティにコメントを付けてください。 次に例を示します。
    
    # Property for using Oracle Wallets
    # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))
  4. コンパイルおよび実行: サンプルをコンパイルおよび実行して、接続を成功させます。 次に例を示します。

    java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample

JDBC Thinドライバ12.2または以前を使用した接続

JDBCドライバの12.2.0.2または以前を使用している場合は、アプリケーションを起動する前にJavaプロパティを設定します。 通常、アプリケーション起動スクリプトでプロパティを設定します。

最新の18.3 JDBCドライバを使用できない場合は、12.2.0.2または他のより古いJDBCドライバを使用してAutonomous Data Warehouseに接続できます。 12.2または以前のJDBCドライバでは、ojdbc.propertiesファイルがサポートされません。 より古いJDBCドライバ・バージョンでは、ウォレットまたはJKS関連プロパティをシステム・プロパティとして渡すか、接続を確立する接続プロパティとして渡す必要があります。

Oracle Walletの使用

12.2または以前JDBCドライバを使用して、Autonomous Data WarehouseへのJava接続についてOracle Walletを使用する場合、次を実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続の前提条件を参照してください。

  2. 接続の確認: Javaプログラム、サーブレット、またはideを使用して、Autonomous Data Warehouseデータベースへの接続を検証できます。 簡単なテストは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードし、必要なTNS別名を使用するように接続URLを更新することです。 また、データベースのユーザー名とパスワードを使用するようにサンプル・ソース・コードを更新します。 次に例を示します。

    DB_URL="jdbc:oracle:thin:@dbname_high”

    注意:

    Microsoft Active DirectoryをAutonomous Databaseと一緒に使用している場合は、Active Directoryユーザー名およびActive Directoryユーザー・パスワードを使用するようにサンプル・ソース・コードを更新します。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. ウォレットのロケーションの設定 : 一般的に次のようなファイルjava.security (このファイルは、$JRE_HOME/jre/lib/security/java.securityにあるJREインストールの一部)で、プロバイダ・リストの末尾にOraclePKIProviderを追加します:

    security.provider.14=oracle.security.pki.OraclePKIProvider
  4. コンパイルおよび実行: サンプルをコンパイルおよび実行して、接続を成功させます。 classpathoraclepki.jarosdt_core.jarおよびosdt_cert.jarがあることを確認してください。 また、接続プロパティを渡す必要があります。 tnsnames.oraおよびウォレット・ファイルがあるロケーションでプロパティを更新します。

    java –classpath 
    ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:.
    -Doracle.net.tns_admin=/users/test/wallet_dbname  
    -Doracle.net.ssl_server_dn_match=true  
    -Doracle.net.ssl_version=1.2  (Not required for 12.2)
    -Doracle.net.wallet_location= “(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/users/test/wallet_dbname)))” 
    UCPSample

注意:

これらはWindowsシステムの例です。 UNIX (LinuxまたはMac)の複数の行で-Dプロパティを設定している場合は、\続き文字を追加します。

Java KeyStoreの使用

Java KeyStore (JKS)および12.2以前のJDBC Thinドライバを使用してAutonomous Data Warehouseに接続するには、これらのステップに従います。

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続の前提条件を参照してください。

  2. 接続の確認: Javaプログラム、サーブレットまたはIDEを使用して、Autonomous Data Warehouseデータベースへの接続を検証できます。 簡単なテストは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードし、必要なTNS別名を持つように接続URLを更新し、TNS_ADMINを渡してtnsnames.oraのパスを提供し、必要なTNS別名を持つように接続URLを更新することです。 また、サンプル・ソース・コード内では、データベースのユーザー名とパスワードが更新されます。 次に例を示します。

    DB_URL="jdbc:oracle:thin:@dbname_high”

    注意:

    Microsoft Active DirectoryをAutonomous Databaseと一緒に使用している場合は、Active Directoryユーザー名およびActive Directoryユーザー・パスワードを使用するようにサンプル・ソース・コードを更新します。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. コンパイルと実行: サンプルをコンパイルおよび実行して、接続を成功させます。 次に示すように接続プロパティを渡す必要があります。 tnsnames.oraおよびJKSファイルが配置されるロケーションでプロパティを更新します。 これらの接続プロパティをプログラムで渡す場合は、DataSourceForJKS.javaを参照してください。 次に例を示します。

    java 
    -Doracle.net.tns_admin=/users/test/wallet_dbname
    -Djavax.net.ssl.trustStore=truststore.jks
    -Djavax.net.ssl.trustStorePassword=**********
    -Djavax.net.ssl.keyStore=keystore.jks    
    -Djavax.net.ssl.keyStorePassword=************   
    -Doracle.net.ssl_server_dn_match=true    
    -Doracle.net.ssl_version=1.2 // Not required for 12.2

HTTPプロキシでのJDBC Thin接続

クライアントがファイアウォールの内側にあり、ネットワーク構成でインターネットへの接続にHTTPプロキシが必要な場合は、HTTPプロキシを介した接続を可能にするJDBC Thinクライアント18.1以上を使用する必要があります。

HTTPSプロキシ経由でAutonomous Data Warehouseに接続するには、tnsnames.oraファイルを開いて更新してください。 HTTPプロキシhostname(https_proxy)とポート(https_proxy_port)を接続文字列に追加します。 値をHTTPSプロキシ情報で置き換えます。 次に例を示します。

  1. HTTPプロキシのホスト名とポートを、tnsnames.oraの接続定義に追加します。 接続定義のaddressセクションにhttps_proxyおよびhttps_proxy_portパラメータを追加する必要があります。 たとえば、次の例ではHTTPプロキシをproxyhostnameに、HTTPプロキシ・ポートを80に設定しています(これらの値は、各自のHTTPプロキシ情報に置き換えてください)。

ADWC1_high =
       (description=
             (address=
                   (https_proxy=proxyhostname)(https_proxy_port=80)(protocol=tcps)(port=1522)(host=adw.example.oraclecloud.com)
             )
             (connect_data=(service_name=adwc1_high.adw.oraclecloud.com)
             )
             (security=(ssl_server_cert_dn="adw.example.oraclecloud.com,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US")
             )
       )

注意:

  • 18.1より前のJDBC Thinクライアント・バージョンでは、HTTPプロキシを介した接続はサポートされません。

  • 正常な接続は特定のプロキシ構成に依存し、データ転送のパフォーマンスはプロキシ容量に依存します。 Oracleは、パフォーマンスがクリティカルな本番環境ではこの機能の使用をお薦めしません。

  • 組織のネットワーク構成とセキュリティ・ポリシーによっては、HTTPプロキシのtnsnames.oraを構成するのみでは不十分なことがあります。 たとえば、一部のネットワークでは、HTTPプロキシ用のユーザー名とパスワードが必要です。

  • いずれの場合も、ネットワーク管理者に連絡し、HTTPプロキシを介さずに、関連するポートを使用してoraclecloud.comドメインのホストへのアウトバウンド接続をオープンしてください。