機械翻訳について

1 前提条件

次の各項では、Oracle JDBCドライバおよびユニバーサル接続プールを使用してJavaアプリケーションをOracle Autonomous Databaseに接続する前に実行する必要があるタスクについて説明します。

1.1 前提条件(一方向TLS)

この項では、一方向TLS認証の前提条件を示します。

1.1.1 Oracle Autonomous Databaseインスタンスのプロビジョニング

この項では、Oracle Autonomous Databaseインスタンスをプロビジョニングしていない場合にプロビジョニングする方法について説明します。

これらのリンクをクリックして、Oracle Autonomous Databaseインスタンスをプロビジョニングするステップを順を追って説明します。

ADMINユーザーのAutonomous Databaseのプロビジョニング中に設定したパスワードを覚えておいてください。 デモンストレーションの目的で、ADMINユーザーを使用しますが、Oracle SQL Developerまたはデータベース・アクションを使用して他のデータベース・ユーザーを作成することをお薦めします。

1.1.2 相互TLS (mTLS)要件の無効化

この項では、相互TLS (mTLS)要件を無効にし、mTLS接続と一方向TLS接続の両方を有効にするステップを示します。

Oracle Autonomous Databaseの作成後、相互TLSがデフォルト・オプションとして有効になります。
mTLS接続と一方向TLS接続の両方を有効にするには、次の手順に従います。 TLSが有効になると、TLSとmTLSの両方を使用してOracle Autonomous Databaseに接続できます。

関連項目:

詳細は、「Oracle Autonomous Databaseサーバーレスの使用」を参照してください。
  1. Oracle Cloud Infrastructureの左側のナビゲーション・メニューから、Oracle DatabaseAutonomous Databaseの順にクリックします。
  2. Autonomous Databasesページで、「表示名」列の下のリンクからAutonomous Databaseを選択します。
  3. 「Autonomous Database詳細」ページで、「ネットワーク」というセクションを見つけて、「アクセス制御リスト」の横にある「編集」をクリックします。

    ネットワーク

  4. 「アクセス制御リストの編集」ダイアログ・ボックスで、作成するエントリのタイプの値を選択し、値を入力します。
    エントリは、IPアドレス(ローカルIP)、CIDRブロックおよびVCN (名前またはOCID別)で追加できます。 必要な数だけ追加します。
    アクセス制御リストの編集

  5. 「相互TLS (mTLS)認証」フィールドで「編集」をクリックし、「相互TLS (mTLS)認証が必要」チェック・ボックスの選択を解除して、「保存」をクリックします。

    相互TLS認証の編集

    しばらくすると、ステータスは「使用可能」に変わります。 ネットワーク設定は、次のスクリーンショットのようになります:


    ネットワーク

1.1.3 JDK 8のインストール

この項では、JDK 8をインストールするステップを示します。

最新のJDK 8または「より高いJDKバージョン」をダウンロードします。

ノート:

JDK8u162以降のバージョンを使用してください。 java -versionを使用して、インストールしたJDKのバージョンを確認します。 JDBCドライバのバージョンを確認するには、java -jar ojdbc8.jarと入力します。

1.1.4 Githubからのサンプル・プログラムのダウンロード

この項では、Githubからサンプル・プログラムをダウンロードするステップを示します。

  1. GithubからADBQuickStart.javaファイルをダウンロードします。 このサンプル・アプリケーションは、Sales History (SH)サンプル・スキーマを使用し、SH.CUSTOMERS表の20レコードを表示します。
  2. ADBQuickStart.javaファイルを変更して、Oracle Autonomous Database接続情報を含めます:
    • DB_USER: Oracle Autonomous Databaseの作成時にデフォルトで作成されたユーザー(ADMIN)を使用できます(別のOracle Autonomous Databaseユーザーを作成する場合は、かわりにそのユーザーを使用できます)。
    • DB_PASSWORD: データベース・ユーザーのパスワードを使用します。 ADMINユーザーとして接続する場合は、Oracle Autonomous Databaseのプロビジョニング中に「Autonomous Databaseを作成」ステップで選択したパスワードにこれを設定します。 セキュリティ上の理由から、サンプルを実行するときにコンソールからパスワードを入力する必要があります。
    • DB_URL: Oracle Cloud Infrastructureコンソールでデータベース接続をクリックします。 「接続文字列」セクションで、「TLS認証」ドロップダウン・リストからTLSを選択し、要件に基づいて適切な接続文字列をコピーします。 Javaプログラムで直接使用している場合は、"を使用して接続文字列の"をエスケープする必要があります


      接続用の接続文字列

    例:
    DB_URL = "jdbc:oracle:thin:@jdbc:oracle:thin:@(description=
          (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)(host=adb.us-sanjose-1.oraclecloud.com))(connect_data=(service_name=mydemo.adb.oraclecloud.com))(security=(ssl_server_cert_dn=\"CN=adb.us-sanjose-1.oraclecloud.com,
          OU=Oracle ADB SANJOSE, O=Oracle Corporation, L=Redwood City, ST=California,
          C=US\")))" 
    DB_USER="ADMIN" and DB_PASSWORD="enter_it_from_console"
  3. ADBQuickStart.javaファイルへの変更を保存します。
    トラブルシューティングおよびデバッグ: エラーが発生した場合は、トラブルシューティングのヒントページで役立つヒントを参照してください。

1.1.5 データベース接続に対する最近の変更

この項では、ホスト名ベースの一致をサポートする様々なバージョンのJDBC-thinを示します。

DigiCertは、すべてのパブリックTLS/SSL証明書の「組織単位(OU)」フィールドを廃止し、2022年8月現在、「お知らせ」に従って業界標準に準拠しました。 つまり、DigiCertによって発行されたパブリックTLS/SSL証明書にはOUフィールドがなくなります。

関連項目:

MOSノート2911553.1

セキュリティを維持しながら、サーバー側の証明書の変更中にOracle Autonomous Databaseサーバーレスに接続するアプリケーションの中断を回避するには、サーバー証明書のホスト名ベース一致(ドメイン名(DN)一致)を使用する必要があります(TLSサーバー認証の場合)。

次のバージョンのJDBCシンでは、ホスト名ベースの一致がサポートされます:
  • 「21.6 (またはそれ以降)または19.15 (またはそれ以降)」 これらは、TNS接続文字列で(security=(ssl_server_dn_match=yes))をサポートする推奨バージョンです。
  • ホスト名ベースの一致を明示的にオンにする必要があるその他のバージョンは次のとおりです:
    • 21.5 (またはそれ以前)および19.14 (またはそれ以前)
    • 18.21.0.0-patched-for-bug-28492769および12.2.0.1-Patched-for-bug-28492769
    • 12.1.0.2 バグ28492769および19030178のパッチを含む11.2.0.4 (ホスト名ベース照合およびTLS v1.2サポート用)
    • また、次のいずれかのメソッドを使用して、DN一致を明示的にオンにする必要があります:
      • プログラムの使用: prop.setProperty("oracle.net.ssl_server_dn_match", "true")
      • Javaシステム・プロパティの設定: -Doracle.net.ssl_server_dn_match=true

1.2 前提条件(相互TLS)

この項では、相互TLS認証の前提条件を示します。

1.2.1 Oracle Autonomous Databaseインスタンスのプロビジョニング

この項では、Oracle Autonomous Databaseインスタンスをプロビジョニングしていない場合にプロビジョニングする方法について説明します。

これらのリンクをクリックして、Oracle Autonomous Databaseインスタンスをプロビジョニングするステップを順を追って説明します。

ADMINユーザーのAutonomous Databaseのプロビジョニング中に設定したパスワードを覚えておいてください。 デモンストレーションの目的で、ADMINユーザーを使用しますが、Oracle SQL Developerまたはデータベース・アクションを使用して他のデータベース・ユーザーを作成することをお薦めします。

1.2.2 クライアント資格証明の取得

この項では、クライアント資格証明を取得するステップを示します。

Oracle Autonomous Databaseの作成後、次の手順に従って、Oracle Cloud Infrastructureコンソールからクライアント資格証明をダウンロードします。 クライアント資格証明(wallet_[dbname].zip)には、必要なウォレット・ファイルと、mTLS接続を使用して接続できるtnsnames.oraファイルが含まれており、認証および暗号化のセキュリティが強化されています。
  1. 「Oracle Cloud Infrastructureコンソール」から、ナビゲーション・メニューを開き、Oracle Databaseを選択し、Autonomous Databaseを選択します。
  2. Oracle Autonomous Databaseインスタンスの「Autonomous Database詳細」ページに移動します。
  3. 「データベース接続」をクリックします。

    クライアント資格証明の取得

  4. 「ウォレットのダウンロード」をクリックします。 「Walletタイプ」「インスタンス・ウォレット」のままにします。

    クライアント資格証明(ウォレット)のダウンロード

  5. 「パスワード」フィールドにウォレット・パスワードを入力し、「パスワードの確認」フィールドにパスワードを確認します。 次に、「ダウンロード」をクリックします。
    パスワードは8文字以上で、少なくとも1つの文字、1つの数字または1つの特殊文字を含める必要があります。
  6. クライアント資格証明zip (wallet_[dbname].zip)ファイルを保存し、セキュア・ディレクトリに解凍します。 このディレクトリのロケーションは後で必要になります。

1.2.3 JDK 8のインストール

この項では、JDK 8をインストールするステップを示します。

最新のJDK 8または「より高いJDKバージョン」をダウンロードします。

ノート:

JDK8u162以降のバージョンを使用してください。 java -versionを使用して、インストールしたJDKのバージョンを確認します。 JDBCドライバのバージョンを確認するには、java -jar ojdbc8.jarと入力します。

1.2.4 Githubからのサンプル・プログラムのダウンロード

この項では、Githubからサンプル・プログラムをダウンロードするステップを示します。

  1. GithubからADBQuickStart.javaファイルをダウンロードします。 このサンプル・アプリケーションは、Sales History (SH)サンプル・スキーマを使用し、SH.CUSTOMERS表の20レコードを表示します。
  2. ADBQuickStart.javaファイルを変更して、Oracle Autonomous Database接続情報を含めます:
    • DB_USER: Oracle Autonomous Databaseの作成時にデフォルトで作成されたユーザー(ADMIN)を使用できます(別のOracle Autonomous Databaseユーザーを作成する場合は、かわりにそのユーザーを使用できます)。
    • DB_PASSWORD: データベース・ユーザーのパスワードを使用します。 ADMINユーザーとして接続する場合は、Oracle Autonomous Databaseのプロビジョニング中に「Autonomous Databaseを作成」ステップで選択したパスワードにこれを設定します。 セキュリティ上の理由から、サンプルを実行するときにコンソールからパスワードを入力する必要があります。
    • DB_URL: ネット・サービス名(TNS別名)DBName_mediumを入力します。データベース名は、Oracle Autonomous Databaseのプロビジョニング中にAutonomous Databaseを作成ステップで入力されたOracle Autonomous Database名です。 使用可能なネット・サービス名は、クライアント資格証明zipファイルの一部であるtnsnames.oraファイルで確認できます。

      TNS_ADMINは、Oracle Autonomous Databaseのクライアント資格証明を解凍したロケーションを指す必要があります。

    例:
    DB_URL = "jdbc:oracle:thin:@DBName_medium?TNS_ADMIN=/Users/test/wallet_DBName" DB_USER="ADMIN" and DB_PASSWORD="enter_it_from_console"
  3. ADBQuickStart.javaファイルへの変更を保存します。

1.3 変更された接続文字列の追加ステップ

この項では、Autonomous Databaseサーバーレス接続文字列を変更するときに実行する必要がある追加ステップについて説明します。

Autonomous Databaseサーバーレス接続文字列には、リージョンに依存するホスト名...(HOST=xyz)...が含まれます。 たとえば、シカゴ・リージョンでは、ホスト名はadb.us-chicago-1.oraclecloud.comになります。 デフォルトのホスト名をIPアドレスまたはカスタム・ホスト名で置き換えた場合、ホスト名ベースのDN一致は失敗します。

解決策は、元のAutonomous Databaseサーバーレス・ドメインサフィクスを使用して、新しいエントリを/etc/hostsファイルに追加することです。 接続文字列では、この新しい名前を使用する必要があります。 たとえば、カスタムIPアドレスに解決されるエントリlocaltunnel.adb.us-chicago-1.oraclecloud.comを追加し、その名前をJDBC接続文字列で使用します。