8 ネーミング・メソッドの構成
データベース・サーバーに接続するクライアントの接続情報を構成する方法について説明します。
- ローカル・ネーミング・メソッドの構成
ローカル・ネーミング・メソッドでは、ネットワーク・サービス名をtnsnames.ora
ファイルに追加します。各ネットワーク・サービス名は、接続記述子にマップされます。 - ディレクトリ・ネーミング・メソッドの構成
このネーミング・メソッドでは、接続識別子が、Oracle Internet Directory、Oracle Unified Directory、Microsoft Active DirectoryなどのLDAP準拠ディレクトリ・サーバーに含まれている接続記述子にマップされます。 - 集中化された構成プロバイダのネーミング・メソッドの構成
このネーミング・メソッドを使用すると、Azure App ConfigurationストアやOracle Cloud Infrastructure (OCI) Object Storageなどの集中化された構成プロバイダのJSONファイルに含まれる接続記述子に、接続識別子がマップされます。 - 簡易接続ネーミング・メソッドの構成
簡易接続ネーミング・メソッドを使用すると、TCP/IP環境のtnsnames.ora
ファイルでサービス名を参照する必要がなくなります。さらに、このメソッドを使用するとネーミング・システムやディレクトリ・システムは必要ありません。
関連トピック
親トピック: Oracle Net Servicesの構成と管理
8.1 ローカル・ネーミング・メソッドの構成
ローカル・ネーミング・メソッドでは、ネットワーク・サービス名をtnsnames.ora
ファイルに追加します。各ネットワーク・サービス名は、接続記述子にマップされます。
次の例は、DESCRIPTION
に含まれる接続記述子にマップされるネットワーク・サービス名sales
を示しています。DESCRIPTION
セクションにはプロトコル・アドレスが含まれており、接続先データベース・サービスを識別します。この例では、プロトコルはTCP/IP、ポートは1521です。
例8-1 ホスト名を含む接続記述子
sales= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))
次の例は、IPv6アドレスおよびポート番号1522で識別されるホストに接続するための有効なtnsnames.ora
エントリを示しています。
例8-2 IPv6アドレスを含む接続記述子
salesdb = ( DESCRIPTION = ( ADDRESS=(PROTOCOL=tcp)(HOST=2001:0db8:1:1::200C:417A)(PORT=1522) ) ( CONNECT_DATA = (SERVICES_NAME=sales.example.com) ) )
次の項目で説明するように、ローカル・ネーミングは、インストール中またはインストール後に構成できます。
- インストール中のtnsnames.oraファイル構成
- インストール後のtnsnames.oraファイル構成
ネットワーク・サービス名は、インストール後、いつでもtnsnames.ora
ファイルに追加できます。
関連トピック
親トピック: ネーミング・メソッドの構成
8.1.1 インストール中のtnsnames.oraファイル構成
Oracle Net Configuration Assistantを使用すると、クライアントに対するネットワーク・サービス名の構成が可能となります。Oracle Universal Installerは、ソフトウェアのインストール後にOracle Net Configuration Assistantを起動します。構成は、インストール・モードによって異なります。
-
管理者またはランタイム・インストレーション: Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、
tnsnames.ora
ファイルにネットワーク・サービス名を構成するように求められます。 -
カスタム・インストレーション: Oracle Net Configuration Assistantでは、使用するネーミング・メソッドを選択するように求められます。ローカル・ネーミングを選択した場合、Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、
tnsnames.ora
ファイル中のネットワーク・サービス名を構成するように求められます。
親トピック: ローカル・ネーミング・メソッドの構成
8.1.2 インストール後のtnsnames.oraファイル構成
ネットワーク・サービス名は、インストール後、いつでもtnsnames.ora
ファイルに追加できます。
ローカル・ネーミング・メソッドを構成するには、次の作業を実行します。
ノート:
Oracle Netとの接続を構成する前に、基礎となるネットワーク接続が稼働している必要があります。
- タスク1 ネット・サービス名の構成
-
ネットワーク・サービス名を構成するには、次のいずれかの方法を使用します。
それぞれの方法で同様の機能が提供されます。ただし、Oracle Net Managerには
sqlnet.ora
ファイルでの追加の構成オプションがあります。-
Oracle Enterprise Manager Cloud Controlを使用したネット・サービス名の構成
次の手順では、Oracle Enterprise Manager Cloud Controlを使用して
tnsnames.ora
ファイルのネットワーク・サービス名を構成する方法について説明します。-
Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。
-
「管理」リストから「ローカル・ネーミング」を選択し、構成ファイルの場所が含まれるOracleホームを選択します。
-
「ローカル・ネーミング」ページが表示されます。データベース・サーバーへのログインを求められる場合があります。
-
「類似作成」をクリックします。
「ネット・サービス名の作成」ページが表示されます。
-
「ネット・サービス名」フィールドに名前を入力します。
ネットワーク・サービス名は、クライアントのドメインで修飾できます。
sqlnet.ora
ファイルのパラメータNAMES.DEFAULT_DOMAINが設定されていると、ネットワーク・サービス名は自動的にドメインによって修飾されます。関連項目:
-
「データベース情報」セクションで次のようにサービス・サポートを設定します。
-
宛先サービス名を入力します。
関連項目:
使用するサービス名文字列の詳細は、「接続記述子について」を参照
-
データベース接続タイプを選択します。
接続タイプには「データベースのデフォルト」のデフォルト設定をお薦めします。専用サーバーが初期化パラメータ・ファイルで構成されている場合、「専用サーバー」を選択し、共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させることができます。共有サーバーが初期化パラメータ・ファイルで構成され、接続時に常に共有サーバーが使用されるようにする場合は、「共有サーバー」を選択します。
関連項目:
共有サーバーの構成の詳細は、「共有サーバー・アーキテクチャの構成」を参照してください。
-
-
アドレス・セクションで次のようにプロトコル・サポートを設定します。
-
「追加」をクリックします。
「アドレスの追加」ページが表示されます。
-
「プロトコル」リストからリスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。
-
提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。
関連項目:
プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
-
(オプション)「拡張パラメータ」セクションを使用して、このセッションにおける送受信操作に必要なI/Oバッファ・スペース制限を「合計送信バッファ・サイズ」および「合計受信バッファ・サイズ」フィールドに指定します。
関連項目:
バッファ・スペースの詳細は、「I/Oバッファ・スペースの構成」を参照してください
-
「OK」をクリックします。
プロトコル・アドレスは、アドレス・セクションに追加されます。
-
-
「OK」をクリックして、ネットワーク・サービス名を追加します。
ネットワーク・サービス名が「ローカル・ネーミング」ページに追加されます。
-
アドレスに対して接続時フェイルオーバーおよびクライアント・ロード・バランシング・オプションを選択します。
-
「OK」をクリックします。
関連項目:
-
複数のプロトコル・アドレスを構成する方法については、「リスナー・プロトコル・アドレスのリスト作成」を参照してください
-
CONNECT_DATAオプションを追加して構成するには、「拡張接続データ・パラメータについて」を参照してください
-
-
Oracle Net Managerを使用したネット・サービス名の構成
次の手順では、Oracle Net Managerを使用して
tnsnames.ora
ファイルのネットワーク・サービス名を構成する方法について説明します。-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」メニューから「サービス・ネーミング」を選択します。
-
ツールバーで「+」をクリックするか、「編集」メニューから「作成」を選択します。
-
「ネット・サービス名」フィールドに名前を入力します。
ネットワーク・サービス名は、クライアントのドメインで修飾できます。
sqlnet.ora
ファイルのパラメータNAMES.DEFAULT_DOMAINが設定されていると、ネットワーク・サービス名は自動的にドメインによって修飾されます。関連項目:
-
「次へ」をクリックします。
「プロトコル」ページが表示されます。
-
リスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。
-
「次へ」をクリックします。
「プロトコル設定」ページが表示されます。
-
提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。
関連項目:
プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
-
「次へ」をクリックします。
「サービス」ページが表示されます。
-
宛先サービス名を入力し、オプションでデータベース接続タイプを選択します。
オラクル社では、接続タイプには「データベースのデフォルト」のデフォルト設定の使用をお薦めします。専用サーバーが初期化パラメータ・ファイルで構成されている場合、「専用サーバー」を選択し、共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させることができます。共有サーバーが初期化パラメータ・ファイルで構成され、接続時に常に共有サーバーが使用されるようにする場合は、「共有サーバー」を選択します。
関連項目:
-
共有サーバーの構成の詳細は、「共有サーバー・アーキテクチャの構成」を参照してください
-
使用するサービス名文字列の詳細は、「接続記述子について」を参照
-
-
「次へ」をクリックします。
「テスト」ページが表示されます。
-
ネットワーク・サービス名が機能するかどうかを確認するには、「テスト」をクリックし、Netサービス名ウィザードを終了するには、「終了」をクリックします。
「テスト」をクリックすると、Oracle Netは構成済の接続記述子情報を使用して、データベース・サーバーに接続します。このため、リスナーとデータベースを実行していなければテストを正常に実行できません。実行されていない場合は、テストの前に、「Oracle Net ListenerとOracle Databaseサーバーの起動」を参照してコンポーネントを起動してください。テスト中、ステータスとテスト結果を示す「接続テスト」ダイアログ・ボックスが表示されます。テストが成功すると、次のメッセージが表示されます。
The connection test was successful.
テストが成功した場合は、「閉じる」をクリックして「接続テスト」ダイアログ・ボックスを閉じてからステップ13に進みます。
テストが正常終了しなかった場合は、次の処置を行ってください。
-
データベースとリスナーが実行されていることを確認し、「テスト」をクリックします。
-
「ログインの変更」をクリックして、接続に使用するユーザー名とパスワードを変更し、「テスト」をクリックします。
-
-
「終了」をクリックして、「Netサービス名ウィザード」を終了します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
関連項目:
-
複数のプロトコル・アドレスを構成する方法については、「リスナー・プロトコル・アドレスのリスト作成」を参照してください
-
CONNECT_DATAオプションを追加して構成するには、「拡張接続データ・パラメータについて」を参照してください
-
-
-
Oracle Net Configuration Assistantを使用したネット・サービス名の構成
次の手順では、Oracle Net Configuration Assistantを使用して
tnsnames.ora
ファイルのネットワーク・サービス名を構成する方法について説明します。-
Oracle Net Configuration Assistantを起動します。
「ようこそ」ページが表示されます。
-
「ローカル・ネット・サービス名構成」を選択してから、「次へ」をクリックします。
「ネット・サービス名の構成」ページが表示されます。
-
「追加」をクリックし、「次へ」をクリックします。
「ネット・サービス名の構成」ページが表示されます。
-
「サービス名」フィールドにネット・サービス名を入力します。
-
「次へ」をクリックします。
-
ウィザードのプロンプトとオンライン・ヘルプに従って、ネットワーク・サービス名を作成します。
-
- タスク2 第1番目のネーミング・メソッドとしてのローカル・ネーミングの構成
-
sqlnet.ora
ファイルのNAMES.DIRECTORY_PATHパラメータで第1番目のネーミング・メソッドとして指定するローカル・ネーミングを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用するネーミング・メソッドの順序を指定します。第1番目のネーミング・メソッドとしてローカル・ネーミング・メソッドを構成するには、次のいずれかの方法を使用します。
それぞれの方法で同じ機能が提供されます。
Oracle Enterprise Manager Cloud Controlを使用したローカル・ネーミングの構成
次の手順では、Oracle Enterprise Manager Cloud Controlを使用して第1番目のネーミング・メソッドとしてローカル・ネーミングを指定する方法について説明します。
-
Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。
-
「管理」リストから「ネットワーク・プロファイル」を選択します。
-
「実行」をクリックします。
-
「ネーミング・メソッド」を選択します。
-
「使用可能なメソッド」リストから「TNSNAMES」を選択します。
-
「移動」をクリックして、選択したメソッドを「選択したメソッド」リストに移動します。
-
「昇格」ボタンを使用してTNSNAMESをリストの最上位に移動します。
-
「OK」をクリックします。
Oracle Net Managerを使用したローカル・ネーミングの構成
次の手順では、Oracle Net Managerを使用して第1番目のネーミング・メソッドとしてローカル・ネーミングを指定する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。
-
右ペインのリストから、「ネーミング」を選択します。
-
「メソッド」タブをクリックします。
-
「使用可能なメソッド」リストから「TNSNAMES」を選択し、右矢印ボタンをクリックします。
-
「選択メソッド」リストで「TNSNAMES」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.ora
ファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにtnsnames
が最初に表示されます。NAMES.DIRECTORY_PATH=(tnsnames, EZCONNECT)
-
- タスク3 他のクライアントへの構成のコピー
-
クライアントを1台構成してから、
tnsnames.ora
とsqlnet.ora
の構成ファイルを他のクライアントの同じ場所にコピーします。これによって、ファイルの一貫性が保たれます。その他に、Oracle Net Assistantをすべてのクライアント上で使用できます。 - タスク4 リスナーの構成
-
サーバー上のリスナーは、ネットワーク・サービス名用に構成したものと同じプロトコル・アドレスを使用してリスニングするように構成する必要があります。デフォルトでリスナーは、ポート1521のTCP/IPプロトコルを使用するように構成されています。
関連項目:
リスナー構成の詳細は、「Oracle Net Listenerの構成と管理」を参照してください
- タスク5 データベースへの接続
-
クライアントは、次の構文を使用してデータベースへ接続できます。
CONNECT
username
@net_service_name
親トピック: ローカル・ネーミング・メソッドの構成
8.2 ディレクトリ・ネーミング・メソッドの構成
このネーミング・メソッドでは、接続識別子が、Oracle Internet Directory、Oracle Unified Directory、Microsoft Active DirectoryなどのLDAP準拠ディレクトリ・サーバーに含まれている接続記述子にマップされます。
ディレクトリでは、データベース・サービスおよびネットワーク・サービス名の集中管理が提供され、サービスの追加または再配置が容易になります。
プロトコル固有パラメータおよびディレクトリ使用パラメータは、外部構成ファイル(ldap.ora
やsqlnet.ora
など)内で指定するか、データベース・クライアント接続識別子で直接指定することができます。
- ネット・サービス名、データベース・サービスおよび別名エントリの構成
Oracle Enterprise Manager Cloud ControlおよびOracle Net Managerを使用して、ネットワーク・サービス名、ネットワーク・サービス別名エントリおよびデータベース・サービス・エントリを構成できます。クライアントは、データベースへの接続にこれらのエントリを使用できます。 - ディレクトリ・ネーミング・サーバーでの複数のデフォルト・コンテキストの作成
複数のデフォルト・コンテキストを有効にするには、デフォルトのoracleContext
として使用するドメインとDNの間の関連付けリストを付けて、orclCommonContextMap
を定義します。 - ディレクトリ・ネーミング・サーバーへのローカル・ネーミング・エントリのエクスポート
tnsnames.ora
ファイルがすでに存在する場合は、そのファイルに格納されているネットワーク・サービス名をディレクトリ・サーバーにエクスポートできます。これらのタスクでは、ディレクトリ・サーバーがインストールされて実行中であると想定しています。 - ウォレットを使用するためのLDAPネーミング・アダプタの構成
クライアントLDAPネーミング・アダプタでは、LDAPディレクトリへの接続中にLDAPバインドが認証されて、接続文字列名が解決されます。認証中にOracleウォレットを使用するようにアダプタを構成できます。 - 接続識別子でのLDAPパラメータの直接指定
ディレクトリ・ネーミング・メソッドでは、データベース・クライアント接続識別子でのLDAPパラメータの使用により、LDAP名前参照を指定するための代替方法が提供されます。この機能を使用すると、データベースへの接続のために外部構成ファイル(ldap.ora
またはsqlnet.ora
)を構成する必要がありません。 - tnsnames.oraファイルへのディレクトリ・ネーミング・エントリのエクスポート
ディレクトリ・ネーミング・エントリの作成後は、そのエントリをローカルのtnsnames.ora
ファイルにエクスポートしそのファイルをクライアントに配布することを検討します。ディレクトリ・サーバーが一時的に使用できなくなっているときに、クライアントで、ローカルに保存されているファイルを使用できます。
親トピック: ネーミング・メソッドの構成
8.2.1 ネット・サービス名、データベース・サービスおよび別名エントリの構成
Oracle Enterprise Manager Cloud ControlおよびOracle Net Managerを使用して、ネットワーク・サービス名、ネットワーク・サービス別名エントリおよびデータベース・サービス・エントリを構成できます。クライアントは、データベースへの接続にこれらのエントリを使用できます。
親トピック: ディレクトリ・ネーミング・メソッドの構成
8.2.2 ディレクトリ・ネーミング・サーバーでの複数のデフォルト・コンテキストの作成
複数のデフォルト・コンテキストを有効にするには、デフォルトのoracleContext
として使用するドメインとDN間の関連付けリストを付けて、orclCommonContextMap
を定義します。
クライアントに、複数のOracleコンテキストが含まれるディレクトリでの検出機能を使用させる必要がある場合は、基本のadmin
コンテキストにorclCommonContextMap
属性を定義できます。この属性は、orclDefaultSubscriber
属性をオーバーライドします。名前参照を実行すると、検出操作によって2つの属性値が戻され、クライアントはそれらの値に基づいて、使用するOracleコンテキストを決定します。
orclCommonContextMap
属性が定義されていない場合、orclDefaultSubscriber
がデフォルトとして使用されます。orclCommonContextMap
が定義されている場合、クライアントは、DNSドメインに関連付けられているデフォルトのOracleコンテキストをorclCommonContextMap
から検索します。
LDIFファイル・エントリの例を次に示します。
$ ldapmodify -v -h sales-server -p 1389 -D cn=orcladmin -q dn: cn=Common,cn=Products,cn=OracleContext replace: orclCommonContextMap orclCommonContextMap: (contextMap= (domain_map=(domain=us.example.com)(DN="dc=example,dc=com")) (domain_map=(domain=uk.example.com)(DN="dc=sales,dc=com")) )
改行を含めずにcontextMap
エントリを入力する必要があります。
8.2.3 ディレクトリ・ネーミング・サーバーへのローカル・ネーミング・エントリのエクスポート
tnsnames.ora
ファイルがすでに存在する場合は、そのファイルに格納されているネットワーク・サービス名をディレクトリ・サーバーにエクスポートできます。これらのタスクでは、ディレクトリ・サーバーがインストールされて実行中であると想定しています。
エクスポート手順は、一度に1つのドメインに対して実行します。
- タスク1 ディレクトリ・サーバーでの構造の作成
-
ディレクトリ・サーバーで、ネットワーク・サービス名をインポートする構造のディレクトリ情報ツリー(DIT)を作成します。Oracleコンテキストの先頭までの構造を作成します。
たとえば、
tnsnames.ora
ファイルでドメイン構造example.com
がサポートされており、ディレクトリ内にこのドメインをレプリケートする場合は、次の図に示すように、そのディレクトリにドメイン・コンポーネント・エントリdc=com
およびdc=example
を作成します。現在
tnsnames.ora
で使用しているドメイン構造をレプリケートできます。または、完全に異なる構造を作成することもできます。完全に異なる構造を導入すると、クライアントが接続文字列にネットワーク・サービス名を入力する方法が変更されます。構造を変更する前に、相対ネーミングおよび完全修飾ネーミングを検討することをお薦めします。 - タスク2 Oracleコンテキストの作成
-
Oracle Internet Directoryコンフィギュレーション・アシスタントを使用して、タスク1で作成した各DITの位置の下にOracleコンテキストを作成します。Oracleコンテキストには、
cn=OracleContext
の相対識別名(RDN)があります。Oracleコンテキストには、その他のOracleコンポーネントのエントリとともに、ネットワーク・オブジェクト・エントリが格納されます。次の図では、cn=OracleContext
がdc=example,dc=com
の下に作成されます。 - タスク3 ディレクトリ・サーバーの使用の構成
-
Oracleコンテキストを作成する際に作業の一部として構成が終了していない場合、Oracleホームをディレクトリ・サーバーで使用できるように構成します。Oracleホームは、エクスポートを実行できる構成にする必要があります。
- タスク4 ディレクトリ・サーバーへのオブジェクトのエクスポート
-
tnsnames.ora
ファイルに含まれるネットワーク・サービス名をエクスポートするには、Oracle Enterprise Manager Cloud ControlrまたはOracle Net Managerのいずれかを使用します。-
Oracle Enterprise Manager Cloud Controlを使用したオブジェクトのエクスポート
次の手順では、Oracle Enterprise Manager Cloud Controlを使用してオブジェクトをエクスポートする方法について説明します。
-
Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。「「Net Services管理」ページへのアクセス」を参照してください。
-
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
-
「実行」をクリックします。
「ディレクトリ・ネーミング」ページが表示されます。
-
「ネット・サービス名」タブをクリックします。
-
関連リンク・セクションで「ディレクトリ・サーバーへのネット・サービス名のインポート」をクリックします。
「ディレクトリ・サーバーへのネット・サービス名のインポート」ページが表示されます。
-
「Oracle Internet Directory Server接続先」セクションの「Oracleコンテキスト」リストから、選択したネットワーク・サービス名のエクスポート先であるOracleコンテキストを選択します。
-
「インポートするネット・サービス名」セクションで、ネットワーク・サービス名を選択します。
-
「追加」をクリックして、ネットワーク・サービス名をディレクトリに追加します。
ネットワーク・サービス名が「ディレクトリ・ネーミング」ページに追加されます。
-
-
Oracle Net Managerを使用したオブジェクトのエクスポート
次の手順では、Oracle Net Managerを使用してオブジェクトをエクスポートする方法について説明します。
-
Oracle Net Managerを起動します。「Oracle Net Managerを使用したOracle Net Servicesの構成」を参照してください。
-
エクスポートする
tnsnames.ora
ファイルがOracle Net Managerにロードされていない場合は、「ファイル」メニューから「ネットワーク構成を開く」を選択して、ディレクトリにエクスポートするtnsnames.ora
ファイルを選択します。 -
「ツール」メニューから「ディレクトリ」を選択し、「ネット・サービス名のエクスポート」を選択します。
-
「次へ」をクリックします。
tnsnames.ora
ファイルで、複数ドメインを持つネットワーク・サービス名が検出された場合は、「ドメインの選択」ページが表示されます。ステップ5に進みます。ネットワーク・サービス名がドメインで修飾されていない場合、「ネット・サービス名の選択」ページが表示されます。ステップ6に進みます。
-
エクスポート用のネットワーク・サービス名のネットワーク・ドメインを選択して、「次へ」をクリックします。
「ネット・サービス名の選択」ページが表示されます。
-
エクスポートするリストからネットワーク・サービス名を選択して、「次へ」をクリックします。
「接続先コンテキストの選択」ページが表示されます。
-
「接続先コンテキストの選択」ページで、次を実行します。
-
「ディレクトリ・ネーミング・コンテキスト」リストから、Oracleコンテキストを含むディレクトリ・エントリを選択します。ディレクトリ・ネーミング・コンテキストは、1つまたは複数のOracleコンテキストを含むディレクトリ・サブツリーの一部です。
-
「Oracleコンテキスト」リストから、選択したネットワーク・サービス名のエクスポート先であるOracleコンテキストを選択します。
-
「次へ」をクリックします。
「ディレクトリ・サーバーの更新」ページがエクスポート操作のステータスで表示されます。
-
-
「終了」をクリックして、ディレクトリ・サーバー移行ウィザードを終了します。
-
-
親トピック: ディレクトリ・ネーミング・メソッドの構成
8.2.4 ウォレットを使用するためのLDAPネーミング・アダプタの構成
クライアントLDAPネーミング・アダプタは、LDAPディレクトリへの接続中にLDAPバインドを認証し、接続文字列名を解決します。認証中にOracleウォレットを使用するようにアダプタを構成できます。
関連トピック
親トピック: ディレクトリ・ネーミング・メソッドの構成
8.2.5 接続識別子でのLDAPパラメータの直接指定
ディレクトリ・ネーミング・メソッドでは、データベース・クライアント接続識別子でのLDAPパラメータの使用により、LDAP名前参照を指定するための代替方法が提供されます。この機能を使用すると、データベースへの接続のために外部構成ファイル(ldap.ora
またはsqlnet.ora
)を構成する必要がありません。
LDAP名前参照のためにldap.ora
およびsqlnet.ora
の一部として指定された値は、接続識別子で直接渡されます。ldap.ora
またはsqlnet.ora
が存在しており、接続識別子でLDAPパラメータを使用している場合は、接続識別子の値が優先されます。
接続識別子の構文
ldap[s]://host[:port]/name[,context][?parameter1=value1{¶meter2=value2}]
たとえば:
sqlplus "<user_name>/<password>@ldaps://<host_name>:<port>/cn=sales,cn=oraclecontext?DIRECTORY_SERVER_TYPE=oid&WALLET_LOCATION=/oracle/network/admin&AUTHENTICATE_BIND=true&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
ここでは、<user_name>/<password>
により、接続のデータベースのユーザー名とパスワードを指定します。
次に、ldap[s]://host[:port]/name[,context]
を使用して指定する、プロトコル固有のパラメータを示します:
構文要素 | 説明 | デフォルト値 |
---|---|---|
|
これは必須パラメータです。プロトコル(
|
該当なし |
|
これは必須パラメータです。LDAPディレクトリ・サーバーが実行されているホストの名前を指定します。 |
該当なし |
|
これはオプションのパラメータです。LDAP接続のポート番号を指定します。 |
LDAPプロトコルの場合は LDAPSプロトコルの場合は |
|
これは必須パラメータです。接続文字列内のサービス名を解決するLDAPエントリを指定します。 このエントリは、指定されたコンテキストの |
該当なし |
|
これはオプションのパラメータです。 たとえば、コンテキストは次のようになります:
|
|
次に、parameter=value
を使用して指定する、ディレクトリ使用パラメータを示します。これらはすべてオプション・パラメータです:
構文要素 | 説明 | デフォルト値 |
---|---|---|
|
LDAPベースの名前参照に使用するディレクトリ・サーバーを指定します。 次の値をとります。
DIRECTORY_SERVER_TYPEを参照してください。 |
|
|
LDAPネーミング・アダプタで認証にウォレットを使用するかどうかを指定します。 値は AUTHENTICATE_BINDを参照してください。 |
|
|
Oracleウォレットが格納されるディレクトリを指定します。 WALLET_LOCATIONを参照してください。 |
該当なし |
|
クライアントLDAPネーミング・アダプタの認証方式を指定します。 値としては AUTHENTICATE_BIND_METHODを参照してください。 |
|
ノート:
directory_server_type
、wallet_location
、authenticate_bind
およびauthenticate_bind_method
パラメータは、位置に依存しません。
接続識別子の例
様々な値で接続識別子を指定する方法の例をいくつか見てみましょう:
-
すべてのパラメータあり:
文字列ですべての必須パラメータとオプション・パラメータが指定されています。
"scott/password@ldaps://ldapserver:636/cn=orcl,cn=OracleContext,dc=example,dc=com?DIRECTORY_SERVER_TYPE=oid&WALLET_LOCATION=/wallet&AUTHENTICATE_BIND=true&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
-
ディレクトリ・サーバーなし:
デフォルトのディレクトリ・サーバー(OID)が使用されます:
"scott/password@ldaps://ldapserver:636/cn=orcl,cn=OracleContext,dc=example,dc=com?WALLET_LOCATION=wallet&AUTHENTICATE_BIND=true&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
-
authenticate_bindなし:
デフォルトの
authenticate_bind
値(false
)が使用されます。そのため、authenticate_bind_method
は無視されます。"scott/password@ldaps://ldapserver:636/cn=orcl,cn=OracleContext,dc=example,dc=com?DIRECTORY_SERVER_TYPE=oid&WALLET_LOCATION=wallet&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
-
管理コンテキストあり:
コンテキスト名の値が
cn=OracleContext,dc=example,dc=com
として指定されています。"scott/password@ldaps://ldapserver:636/cn=orcl,cn=OracleContext,dc=example,dc=com?DIRECTORY_SERVER_TYPE=oid&WALLET_LOCATION=/wallet&AUTHENTICATE_BIND=true&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
-
管理コンテキストなし:
コンテキスト値(
cn=OracleContext,dc=example,dc=com
)がnullです。“scott/password@ldaps://ldapserver:636/orcl?DIRECTORY_SERVER_TYPE=oid&WALLET_LOCATION=/wallet&AUTHENTICATE_BIND=true&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
-
最小限のパラメータ:
最小限のプロトコル固有パラメータが指定されています(プロトコルは
ldaps
、ホストはldapserver
、ポートは636
、コンテキストは文字列ごとに異なります)。"scott/password@ldaps://ldapserver:636/cn=orcl,cn=OracleContext,dc=example,dc=com"
"scott/password@ldaps://ldapserver:636/cn=orcl"
"scott/password@ldaps://ldapserver:636/orcl"
-
システム・ウォレットを使用:
WALLET_LOCATION
値が接続識別子およびsqlnet.ora
ファイルで指定されていません。この場合は、クライアントで、オペレーティング・システムのデフォルトの証明書ストアにあるウォレットが使用されます。"scott/password@ldaps://ldapserver:636/cn=orcl,cn=OracleContext,dc=example,dc=com?DIRECTORY_SERVER_TYPE=oid"
-
LDAPプロトコルを使用:
これらの文字列では、
LDAP
プロトコルはOID構成のために指定されています。"scott/password@ldap://ldapserver:2389/cn=orcl,cn=OracleContext,dc=example,dc=com?DIRECTORY_SERVER_TYPE=oid&AUTHENTICATE_BIND=false"
"scott/password@ldap://ldapserver:2389/cn=orcl,cn=OracleContext,dc=example,dc=com"
-
ディレクトリ・サーバーおよびユーザー名とパスワードによる認証あり
DIRECTORY_SERVER_TYPE
値は、AD
(Microsoft Active Directoryを使用)として指定されています。AUTHENTICATE_BIND
およびAUTHENTICATE_BIND_METHOD
の値で、LDAPS_SIMPLE_AUTH
(ユーザー名とパスワードに基づく認証を提供する)が指定されています。"scott/password@ldaps://ldapserver:636/cn=orcl?DIRECTORY_SERVER_TYPE=AD&WALLET_LOCATION=/wallet&AUTHENTICATE_BIND=true&AUTHENTICATE_BIND_METHOD=LDAPS_SIMPLE_AUTH"
-
ディレクトリ・サーバーおよびWindowsネイティブ認証あり
DIRECTORY_SERVER_TYPE
値は、AD
(Microsoft Active Directoryを使用)として指定されています。AUTHENTICATE_BIND
の値はtrue
として指定されています。これは、デフォルトのLDAPS_SIMPLE_AUTH=NONE
設定を意味します。これにより、Windowsログイン資格情報を使用してWindowsネイティブ認証が提供されます。"scott/password@ldap://ldapserver:389/cn=orcl?DIRECTORY_SERVER_TYPE=AD&AUTHENTICATE_BIND=true"
親トピック: ディレクトリ・ネーミング・メソッドの構成
8.2.6 tnsnames.oraファイルへのディレクトリ・ネーミング・エントリのエクスポート
ディレクトリ・ネーミング・エントリの作成後は、そのエントリをローカルのtnsnames.ora
ファイルにエクスポートしそのファイルをクライアントに配布することを検討します。ディレクトリ・サーバーが一時的に使用できなくなっているときに、クライアントで、ローカルに保存されているファイルを使用できます。
次の手順では、ローカルtnsnames.ora
ファイルにディレクトリ・ネーミングのエントリをエクスポートする方法について説明します。
-
Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。
-
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
-
「実行」をクリックします。
「ディレクトリ・ネーミング」ページが表示されます。
-
「ネット・サービス名」タブをクリックします。
-
「簡易検索」セクションで「Oracleコンテキスト」と検索基準を選択し、特定のOracleコンテキストのネットワーク・サービス名を確認します。
ネットワーク・サービス名が結果セクションに表示されます。
-
結果セクションで、「tnsnames.oraに保存」をクリックします。
「処理中: tnsnames.oraファイルの作成」ページが表示され、作成中であることが通知されます。
関連トピック
親トピック: ディレクトリ・ネーミング・メソッドの構成
8.3 集中化された構成プロバイダのネーミング・メソッドの構成
このネーミング・メソッドを使用すると、Azure App ConfigurationストアやOracle Cloud Infrastructure (OCI) Object Storageなどの集中化された構成プロバイダのJSONファイルに含まれる接続記述子に、接続識別子がマップされます。
オプションで、データベース資格証明(データベース・ユーザー名やデータベース・パスワードなど)およびOracle Call Interface属性(statement_cache_size
、prefetch_rows
、session_pool
など)を、集中化された構成プロバイダに格納することもできます。Azure Key VaultまたはOCI Vaultを使用してデータベース・パスワードを格納し、そのボールトへの参照を、集中化された構成プロバイダに追加する必要があります。OracleウォレットをAzure Key VaultまたはOCI Vaultに格納し、そのボールトへの参照を、集中化された構成プロバイダに追加することもできます。
ここでの接続識別子には、集中化された構成プロバイダのインスタンス固有の詳細(サーバー名やアプリケーション構成名など)、パス、認証の詳細が含まれています。データベース・クライアントで、集中化された構成プロバイダから構成データを安全に参照して、データベースに接続できます。
ノート:
JDBCでは、Azure App ConfigurationストアとOCI Object Storageに加え、組込みの集中化された構成プロバイダ(HTTPSプロバイダやファイル・プロバイダなど)がサポートされています(『Oracle Database JDBC開発者ガイド』を参照)。また、ODP.NETでは、Webアプリケーションとデスクトップ・アプリケーションのローカル・ファイル・システム・アクセスがサポートされています(『Oracle Data Provider for .NET開発者ガイド』を参照)。次の集中化された構成プロバイダのいずれかを使用します:
- Azure App Configurationストア
構成データをキー/値のペアとしてAzure App Configurationストアに格納します。それらには、URIとしてネットワーク・サービス名のパスを使用してアクセスできます。 - OCI Object StorageのJSONファイル
構成データをOracle Cloud Infrastructure (OCI) Object StorageにJSONファイルとして格納します。
関連トピック
親トピック: ネーミング・メソッドの構成
8.3.1 Azure App Configurationストア
構成データをキー/値のペアとしてAzure App Configurationストアに格納します。それらには、URIとしてネットワーク・サービス名のパスを使用してアクセスできます。
- Azure App Configurationストアを使用するための前提条件
Azure App Configurationストアの使用を開始する前に、AzureポータルまたはAzure CLIまたはAPIを使用して、これらのステップを実行します。 - ステップ1: 接続記述子を使用したキー/値の作成
接続記述子を使用してキー/値のペアを作成します。これには、リスナーのプロトコル・アドレス、および宛先サービスの接続情報が含まれます。 - ステップ2: ユーザー名およびパスワードのボールト参照の追加(オプション)
ステップ1で使用した接頭辞の下に、Oracle Databaseに対する認証用のデータベース・ユーザー名とパスワードを含むキー/値のペアを作成します。パスワードの値はボールト参照です。 - ステップ3: ウォレットのボールト参照の追加(オプション)
同じ接頭辞の下に、ウォレットの場所を含むキー/値のペアを作成します。ウォレットの場所の値はボールト参照です。 - ステップ4: Oracle Call Interfaceパラメータの追加(オプション)
同じ接頭辞の下に、Oracle Call Interface構成パラメータを含むキー/値のペアを作成します。 - ステップ5: Azure App Configurationストアの値を含む接続識別子の使用
データベース・クライアントの接続識別子で、Azure App Configuration名、キー・パスおよびAzure認証パラメータを使用します。
親トピック: 集中化された構成プロバイダのネーミング・メソッドの構成
8.3.1.1 Azure App Configurationストアを使用するための前提条件
Azure App Configurationストアの使用を開始する前に、AzureポータルまたはAzure CLIまたはAPIを使用して、これらのステップを実行します。
-
OAuthアプリケーションを登録し、認可権限を付与します:
Azure App Configurationストアの管理者は、「アプリの登録」を使用してOAuthアプリケーションをMicrosoft Entra ID (旧称はMicrosoft Azure Active Directory)に登録する必要があります。管理者は、Azure App Configurationストアにアクセスするために、このOAuthアプリケーションに認可権限を付与する必要もあります。
-
(オプション)シークレットのAzure Key Vaultを作成し、認可権限を付与します:
Oracle Database資格証明とOracleウォレット・データをAzure Key Vaultに格納できます。
-
Oracle Database資格証明を格納するには:
データベース・パスワードをシークレットとして格納したAzure Key Vaultを作成します。
-
Oracleウォレット・データを格納するには:
マルチテナント・クラウド・サービス環境で実行されている
SQLNET
クライアント・アプリケーションでは、ウォレットをリモート・ストアに格納できます。これらのアプリケーションではローカル・システム・ファイルに格納されているウォレットにアクセスできない場合があるため、この機能は、ウォレットの保持にファイル・システム・アクセスを必要とする相互Transport Layer Security (mTLS)接続に特に役立ちます。ウォレット・データを格納するには、まず自動ログイン・ウォレット・ファイル(
cwallet.sso
)をBase64
形式に変換してから、Base64
形式のcwallet.sso
値をシークレットとして格納したAzure Key Vaultを作成します。-
cwallet.sso
ファイルをBase64
形式に変換します。cwallet.sso
をBase64
に変換するための一般的な方法は、Linuxで次のopenssl
コマンドを使用することです:cat cwallet.sso | base64 -w 0 > file_to_upload
ここでは、
file_to_upload
により、変換するcwallet.sso
ファイルを指定しています。 -
cwallet.sso
ファイルのBase64
形式の文字列の内容を新規行のないシークレット・コンテンツとして貼り付けることで、Azure Key Vaultを作成します。
-
後でAzure App ConfigurationにKey Vault参照を追加します。Azure App Configurationストアの管理者は、このボールトへのアクセスのために、登録されたOAuthアプリケーションに認可権限を付与する必要があります。
これらのステップの実行方法の詳細は、Azure Key Vaultのドキュメントを参照してください。
-
-
Azure App Configurationでキーを編成する方法を理解します:
connect_descriptor
、user
、password
およびwallet_location
で終わるキーは、キー/値のペアの識別子として機能し、データベース接続のための対応する値を格納および取得するために使用されます。connect_descriptor
のキー(connect_descriptor
で終わるキー)では、接続記述子(TNS接続文字列とも呼ばれる)が格納されます。/
(スラッシュ)、&
(アンパサンド)または:
(コロン)などの文字デリミタを使用して、キーを階層ネームスペースに編成することが一般的です。アプリケーションに適した規則を使用します。この例では、/
(スラッシュ)を文字デリミタとして使用してキーを編成します。アプリケーション・ユーザーは、アプリケーション要件に従って接続記述子を接頭辞の下に編成でき、Azure App Configurationでこのようなキーすべての認証および認可を設定できます。オプションで、同じ接頭辞の下にデータベース資格証明(データベース・ユーザーのユーザー名とパスワードなど)、ウォレットの場所、およびOracle Call Interface属性を追加できます。-
prefix/connect_descriptor
(必須) -
prefix/user
(オプション) -
prefix/password
(オプション) -
prefix/wallet_location
(オプション) -
prefix/oci
(オプション)
connect_descriptor
接尾辞のないキーの一部分は、データベース・ユーザー名、データベース・パスワードおよびOCI属性を導出するための接頭辞として扱われます。データベース・クライアントにより、導出された接頭辞がデータベース・ユーザー名として使用された後にuser
接尾辞で終わるキー、データベース・パスワードのためのpassword
接尾辞で終わるキー、ウォレット・ディレクトリのためのwallet_location
接尾辞で終わるキー、およびOCI属性のためのoci
接尾辞で終わるキーが検索されます。接続識別子にはキーの一部が含まれており、接頭辞として
connect_descriptor
を終了していません。データベース・クライアントにより、connect_descriptor
、user
、password
、wallet_location
またはoci
の付加によってキーが完成された後、そのキーでAzure App Configurationストアが検索されます。Azureの集中化された構成プロバイダのネーミングの構文:config-azure://{appconfig-name}[?key=prefix&label=value&option1=value1&option2=value2...]
たとえば:sqlplus dbuser/@"config-azure://dbclient-appconfig?key=database/sales/&azure_client_id=client id&azure_client_secret=secret&azure_tenant_id=tenant id"
この構文については、以降の項で詳しく説明します。
-
8.3.1.3 ステップ2: ユーザー名およびパスワードのボールト参照の追加(オプション)
ステップ1で使用した接頭辞の下に、Oracle Databaseに対する認証用のデータベース・ユーザー名とパスワードを含むキー/値のペアを作成します。パスワードの値はボールト参照です。
親トピック: Azure App Configurationストア
8.3.1.4 ステップ3: ウォレットのボールト参照の追加(オプション)
同じ接頭辞の下に、ウォレットの場所を含むキー/値のペアを作成します。ウォレットの場所の値はボールト参照です。
親トピック: Azure App Configurationストア
8.3.1.5 ステップ4: Oracle Call Interfaceパラメータの追加(オプション)
同じ接頭辞で、Oracle Call Interface構成パラメータを使用してキー値のペアを作成します。
oraaccess.xml
ファイルに構成されているOracle Call Interfaceのパラメータをこの構成でオーバーライドすることも、ファイルの構成を省略することもできます。oraaccess.xml
ファイルは、クライアント側の構成ファイルであり、デプロイメント中に、選択したOCIパラメータを構成できます。
親トピック: Azure App Configurationストア
8.3.1.6 ステップ5: Azure App Configurationストアの値を含む接続識別子の使用
データベース・クライアントの接続識別子で、Azure App Configuration名、キー・パスおよびAzure認証パラメータを使用します。
config-azure://{appconfig-name}[?key=prefix&label=value&option1=value1&option2=value2...]
構文の詳細は次のとおりです:
構文要素 | 説明 |
---|---|
|
Azure App Configurationストアの名前。 |
|
Azure App Configurationで |
|
接続記述子に使用されるラベル。 ラベルは、同じキーが設定されたキー値を区別するために使用します。詳細は、Microsoft Azureのドキュメントを参照してください。 |
|
集中化された構成プロバイダにアクセスするための認証方式および対応する認証パラメータ。 認証方式:
認証パラメータ: AUTHENTICATIONでの説明に従って、選択した認証方式に対応する認証パラメータを設定します。 たとえば、デフォルトのOAuth 2.0クライアント資格証明の認証方式を使用する場合は、 すべての認証パラメータの詳細は、Azure App Configurationストアの認証パラメータを参照してください。 |
例:
異なる値で接続識別子文字列を指定する方法の例をいくつか見てみましょう:
-
デフォルトのOAuth 2.0クライアント資格証明認証を使用する場合:
sales
やhr
などの複数のアプリケーションがある場合、sales
の接続記述子をdatabase/sales
接頭辞の下に、hr
の接続記述子をdatabase/hr
接頭辞の下に格納できます。次のネーミングの使用方法では、database/sales
接頭辞の下のconnect_descriptor
が参照されます:ここでは、AUTHENTICATION=AZURE_DEFAULT
設定は省略されています。デフォルト・フローの認証方式は暗黙的であるため、AZURE_CLIENT_ID
、AZURE_CLIENT_SECRET
およびAZURE_TENANT_ID
認証パラメータを使用してクライアント資格証明のみが指定されます。-
文字列に指定したデータベース資格証明を使用する場合:
sqlplus dbuser@"config-azure://dbclient-appconfig?key=database/sales/&azure_client_id=a1abc12-ab12-1ab1-a1b1-123a&azure_client_secret=A123B~AB123a~AB1234_abab&azure_tenant_id=123ab-12a12-1a2b1-a1b2"
-
Azure Key Vaultに保存したデータベース資格証明を使用する場合:
sqlplus /@"config-azure://dbclient-appconfig?key=database/sales/&azure_client_id=a1abc12-ab12-1ab1-a1b1-123a&azure_client_secret=A123B~AB123a~AB1234_abab&azure_tenant_id=123ab-12a12-1a2b1-a1b2"
同様に、次のネーミングの使用方法では、database/hr
接頭辞の下のconnect_descriptor
が参照されます:-
文字列に指定したデータベース資格証明を使用する場合:
sqlplus dbuser@"config-azure://dbclient-appconfig?key=database/hr/&azure_client_id=a1abc12-ab12-1ab1-a1b1-123a&azure_client_secret=A123B~AB123a~AB1234_abab&azure_tenant_id=123ab-12a12-1a2b1-a1b2"
-
Azure Key Vaultに保存したデータベース資格証明を使用する場合:
sqlplus /@"config-azure://dbclient-appconfig?key=database/hr/&azure_client_id=a1abc12-ab12-1ab1-a1b1-123a&azure_client_secret=A123B~AB123a~AB1234_abab&azure_tenant_id=123ab-12a12-1a2b1-a1b2"
-
-
Azureサービス・プリンシパル認証を使用する場合:
-
文字列に指定したデータベース資格証明を使用する場合:
sqlplus dbuser@"config-azure://dbclient-appconfig?key=database/sales/&authentication=azure_service_principal&azure_client_id=a1abc12-ab12-1ab1-a1b1-123a&azure_client_secret=A123B~AB123a~AB1234_abab&azure_client_certificate_path=/app/dbclient/certificate_for_authenticaion.txt&azure_tenant_id=123ab-12a12-1a2b1-a1b2"
-
Azure Key Vaultに保存したデータベース資格証明を使用する場合:
sqlplus /@"config-azure://dbclient-appconfig?key=database/sales/&authentication=azure_service_principal&azure_client_id=a1abc12-ab12-1ab1-a1b1-123a&azure_client_secret=A123B~AB123a~AB1234_abab&azure_client_certificate_path=/app/dbclient/certificate_for_authenticaion.txt&azure_tenant_id=123ab-12a12-1a2b1-a1b2"
-
-
Azure Managed Identity認証を使用する場合:
-
文字列に指定したデータベース資格証明を使用する場合:
sqlplus dbuser@"config-azure://dbclient-appconfig?key=database/sales/&authentication=azure_managed_identity"
-
Azure Key Vaultに保存したデータベース資格証明を使用する場合:
sqlplus /@"config-azure://dbclient-appconfig?key=database/sales/&authentication=azure_managed_identity"
-
8.3.2 OCI Object StorageのJSONファイル
構成データをOracle Cloud Infrastructure (OCI) Object StorageにJSONファイルとして格納します。
- OCI Object StorageのJSONファイルを使用するための前提条件
OCI Object Storageの使用を開始する前に、Oracle Cloud Infrastructure (OCI)コンソール、またはOCI CLIかAPIを使用して、次のステップを実行します。 - ステップ1: 接続記述子を含むJSONファイルの作成
接続記述子を含む、集中化された構成プロバイダのJSONファイルを作成し、Oracle Cloud Infrastructure (OCI) Object Storageにアップロードします。 - ステップ2: ユーザー名およびパスワードのボールト参照の追加(オプション)
ステップ1で作成したJSONファイルに、Oracle Databaseへの認証用のデータベース・ユーザー名およびデータベース・パスワードを追加します。パスワードの値はボールト参照です。 - ステップ3: ウォレットのボールト参照の追加(オプション)
同じJSONファイルに、ウォレットの場所を追加します。ウォレットの場所の値はボールト参照です。 - ステップ4: Oracle Call Interfaceパラメータの追加(オプション)
同じJSONファイルに、Oracle Call Interfaceの構成パラメータを追加します。 - ステップ5: OCI Object Storageの値を含む接続識別子の使用
データベース・クライアントの接続識別子で、Oracle Cloud Infrastructure (OCI) Object Storageのサーバー名、キー・パスおよび認証パラメータを使用します。
親トピック: 集中化された構成プロバイダのネーミング・メソッドの構成
8.3.2.1 OCI Object StorageのJSONファイルを使用するための前提条件
OCI Object Storageの使用を開始する前に、Oracle Cloud Infrastructure (OCI)コンソール、またはOCI CLIかAPIを使用して、次のステップを実行します。
-
OCI Object Storageにバケットを作成します:
OCI Object Storageサービスを使用して、Object Storageネームスペースのコンパートメント内にバケットを作成します。集中化された構成プロバイダのJSONファイルを、後でオブジェクトとしてこのバケットにアップロードします。
-
ポリシーを作成し、それをデータベース・ユーザーに割り当てます:
OCI管理者は、セキュリティ・アクセス権をポリシーで付与する必要があります。OCI Identity and Access Management (IAM)ポリシーを作成し、それをデータベース・ユーザーに割り当てて、コンパートメント内のオブジェクト・ストレージ・リソースにアクセスします。
-
(オプション)シークレットのボールトを作成し、認可権限を付与します:
Oracle Database資格証明とOracleウォレット・データをOCI VaultまたはAzure Key Vaultに格納できます。
-
Oracle Database資格証明を格納するには:
データベース・パスワードをシークレットとして格納したOCI VaultまたはAzure Key Vaultを作成します。
-
Oracleウォレット・データを格納するには:
マルチテナント・クラウド・サービス環境で実行されている
SQLNET
クライアント・アプリケーションでは、ウォレットをリモート・ストアに格納できます。これらのアプリケーションではローカル・システム・ファイルに格納されているウォレットにアクセスできない場合があるため、この機能は、ウォレットの保持にファイル・システム・アクセスを必要とする相互Transport Layer Security (mTLS)接続に特に役立ちます。ウォレット・データを格納するには、まず自動ログイン・ウォレット・ファイル(
cwallet.sso
)をBase64
形式に変換してから、Base64
形式のcwallet.sso
値をシークレットとして格納したOCI VaultまたはAzure Key Vaultを作成します。-
cwallet.sso
ファイルをBase64
形式に変換します。cwallet.sso
をBase64
に変換するための一般的な方法は、Linuxで次のopenssl
コマンドを使用することです:cat cwallet.sso | base64 -w 0 > file_to_upload
ここでは、
file_to_upload
により、変換するcwallet.sso
ファイルを指定しています。 -
cwallet.sso
ファイルのBase64
形式の文字列の内容を新規行のないシークレット・コンテンツとして貼り付けることで、OCI VaultまたはAzure Key Vaultを作成します。
-
後でこれらのボールトへの参照をJSONファイルに追加します。OCI管理者は、OCI Vaultにアクセスするための認可権限をデータベース・ユーザーに付与する必要があります。同様に、Azure App Configurationストアの管理者は、Azure Key Vaultへのアクセスのために、登録されたOAuthアプリケーションに認可権限を付与する必要があります。
これらのステップの実行方法の詳細は、OCI VaultのドキュメントまたはAzure Key Vaultのドキュメントを参照してください。
-
-
集中化された構成プロバイダのJSONファイルの形式を理解します:
接続記述子は、アプリケーション要件に基づいて、次のJSON形式のいずれかで、集中化された構成プロバイダのJSONファイルにおいて編成できます:-
connect_descriptor
サブオブジェクトを含む単一のオブジェクト -
各オブジェクトが独自の
connect_descriptor
サブオブジェクトを持つ複数のオブジェクト(カンマ区切り)
オプションで、
user
およびpassword
サブオブジェクト(データベース・ユーザー名とパスワードを指定するため)、wallet_location
サブオブジェクト(ウォレット・ディレクトリを指定するため)、およびoci
サブオブジェクト(Oracle Call Interface構成パラメータを指定するため)を同じファイル内に追加できます。データベース・クライアントは、接続記述子、データベース・ユーザー名とパスワード、ウォレット・データおよびその他のOracle Call Interface属性を導出するために、JSONオブジェクト内の特定のネットワーク・サービス名を検索します。接続識別子は、OCI Object StorageエンドポイントからこれらのJSONオブジェクトを取得し、それを使用して格納された属性を特定します。これらの値がデータベース接続に使用されます。
集中化された構成プロバイダJSON (CCJSON)の構文は次のとおりです:Centralized Configuration Provider JSON -> CCJSON_elements CCJSON_elements -> CCJSON_elment -> CCJSON_element, CCJSON_element CCJSON_element -> '{' members '}' members -> member -> member, member member -> cd -> member, cd_related cd -> "connect_descriptor" : "<connect_descriptor>" cd_related -> "user" : "<database user name>" -> "password" : '{' password_data '}' -> "wallet_location" : '{' wallet_data '}' -> "oci" : '{' oci_config_members '}' -> nul password_data -> '{' "type" : vault_type, "value" : vault_value, "authentication": authentication_value '}' wallet_data -> '{' "type" : vault_type, "value" : vault_value, "authentication": authentication_value '}' vault_type -> "ocivault" -> "azurevault" vault_value -> "<vault-specific identifier>" authentication_value -> '{' "azure_client_id" : "<client id>", "azure_client_secret" : "<secret>", "azure_tenant_id" : "<tenant id>" '}' -> null oci_config_members -> '{' oci_config_name : oci_config_value '}' oci_config_value -> json_value oci_config_name -> prefetch_rows -> statement_cache_size -> lob_prefetch_size -> session_pool session_pool -> '{' "min" : value, "max" : value, "increment" : value, "max_lifetime_session" : value, "max_use_session" : value, "inactivity_timeout" : value '}' prefetch_rows -> "prefetch_rows" : numeric_value statement_cache_size -> "statement_cache_size" : numeric_value lob_prefetch_size -> "lob_prefetch_size" : numeric_value numeric_value -> "<number>"
以降の各項で、これらの値を使用してJSONファイルを作成する方法を確認します。
-
親トピック: OCI Object StorageのJSONファイル
8.3.2.2 ステップ1: 接続記述子を含むJSONファイルの作成
接続記述子を含む、集中化された構成プロバイダのJSONファイルを作成し、Oracle Cloud Infrastructure (OCI) Object Storageにアップロードします。
親トピック: OCI Object StorageのJSONファイル
8.3.2.3 ステップ2: ユーザー名およびパスワードのボールト参照の追加(オプション)
ステップ1で作成したJSONファイルに、Oracle Databaseへの認証用のデータベース・ユーザー名およびデータベース・パスワードを追加します。パスワードの値はボールト参照です。
このステップは省略可能です。この構成では、データベース接続の接続識別子のデータベース資格証明を省略できます。
8.3.2.4 ステップ3: ウォレットのボールト参照の追加(オプション)
同じJSONファイルに、ウォレットの場所を追加します。ウォレットの場所の値はボールト参照です。
8.3.2.5 ステップ4: Oracle Call Interfaceパラメータの追加(オプション)
同じJSONファイルに、Oracle Call Interfaceの構成パラメータを追加します。
oraaccess.xml
ファイルに構成されているOracle Call Interfaceのパラメータをこの構成でオーバーライドすることも、ファイルの構成を省略することもできます。oraaccess.xml
ファイルは、クライアント側の構成ファイルであり、デプロイメント中に、選択したOCIパラメータを構成できます。
親トピック: OCI Object StorageのJSONファイル
8.3.2.6 ステップ5: OCI Object Storageの値を含む接続識別子の使用
データベース・クライアントの接続識別子で、Oracle Cloud Infrastructure (OCI) Object Storageのサーバー名、キー・パスおよび認証パラメータを使用します。
config-ociobject://objectstorage-server-name/n/{namespaceName}/b/{bucketName}/o/{objectName}/[c/{networkServiceName}]?[option1=value1&option2=value2...]
構文の詳細は次のとおりです:
構文要素 | 説明 |
---|---|
|
OCI Object Storageのサーバー名。これは、OCIコンソールの「オブジェクトの詳細」ページで指定されたURLパス(URI)値です。 この値は、 |
|
JSONファイルを格納したOCI Object Storageネームスペース。 |
|
JSONファイルを格納したOCI Object Storageバケット名。 |
|
ネットワーク・サービス名を検索して解決するためのJSONファイル。 |
|
JSONファイルに2つ以上のネットワーク・サービス名が含まれている場合は、ネットワーク・サービス名。 |
|
集中化された構成プロバイダにアクセスするための認証方法および対応する認証パラメータ。 認証方法:
これらの認証方式の詳細は、AUTHENTICATIONを参照してください。 認証パラメータ: 選択した認証方式に対応する認証パラメータを設定します。
|
例:
異なる値で接続識別子文字列を指定する方法の例をいくつか見てみましょう:
-
文字列で指定されたデータベース資格証明:
sqlplus dbuser/@"config-ociobject://objectstorage.us-region-1.example.com/n/myappnamespace/b/dbclientapps/o/sales.json?oci_tenancy=ocid1.tenancy.oc1..aaabbb1234aaabbb&oci_user=ocid1.user.oc1..ababab12121212&oci_fingerprint=a1:bc:a1:1a:12:a1:a2:b1:b2:1b&oci_key_file=//app/mykey.pem"
-
OCI Vaultに格納されているデータベース資格証明:
ボールト参照は、sales.json
ファイルで構成されています:sqlplus /@"config-ociobject://objectstorage.us-region-1.example.com/n/myappnamespace/b/dbclientapps/o/sales.json?oci_tenancy=ocid1.tenancy.oc1..aaabbb1234aaabbb&oci_user=ocid1.user.oc1..ababab12121212&oci_fingerprint=a1:bc:a1:1a:12:a1:a2:b1:b2:1b&oci_key_file=//app/mykey.pem"
-
JSONファイルで指定されたネットワーク・サービス名:
multi.json
ファイル内の多くのネットワーク・サービス名間で特定の名前を示すネットワーク・サービス名(c/hr
)を指定します:sqlplus dbuser/@"config-ociobject://objectstorage.us-region-1.example.com/n/myappnamespace/b/dbclientapps/o/multi.json/c/hr?oci_tenancy=ocid1.tenancy.oc1..aaabbb1234aaabbb&oci_user=ocid1.user.oc1..ababab12121212&oci_fingerprint=a1:bc:a1:1a:12:a1:a2:b1:b2:1b&oci_key_file=//app/mykey.pem"
-
デフォルトのOCI APIキー認証を使用する場合:
ここでは、
AUTHENTICATION=OCI_DEFAULT
設定は省略されています。デフォルト・フローの認証方式は暗黙的であるため、APIキー関連の値のみが、OCI_TENANCY
、OCI_USER
、OCI_FINGERPRINT
およびOCI_KEY_FILE
認証パラメータを使用して指定されます。sqlplus dbuser/@"config-ociobject://objectstorage.us-region-1.example.com/n/myappnamespace/b/dbclientapps/o/sales.json?oci_tenancy=ocid1.tenancy.oc1..aaabbb1234aaabbb&oci_user=ocid1.user.oc1..ababab12121212&oci_fingerprint=a1:bc:a1:1a:12:a1:a2:b1:b2:1b&oci_key_file=//app/mykey.pem"
-
OCIインスタンス・プリンシパル認証を使用する場合:
sqlplus dbuser/@"config-ociobject://objectstorage.us-region-1.example.com/n/myappnamespace/b/dbclientapps/o/multi.json/c/sales?authentication=oci_instance_principal"
-
OCIリソース・プリンシパル認証を使用する場合:
sqlplus dbuser/@"config-ociobject://objectstorage.us-region-1.example.com/n/myappnamespace/b/dbclientapps/o/multi.json/c/sales?authentication=oci_resource_principal"
8.4 簡易接続ネーミング・メソッドの構成
簡易接続ネーミング・メソッドを使用すると、TCP/IP環境でtnsnames.ora
ファイルでサービス名を検索する必要がなくなります。さらに、このメソッドを使用するとネーミング・システムやディレクトリ・システムは必要ありません。
- 簡易接続ネーミング・メソッドの理解
簡易接続ネーミング・メソッドを使用すれば、データベースにすぐにTCP/IP接続できます。 - Easy Connect Plusのサポート
Oracle Database 19c以降では、Oracle Databaseに接続するためにアプリケーションで使用する簡易接続構文で、Easy Connect Plusと呼ばれる拡張機能がサポートされています。 - 簡易接続ネーミング・メソッドの例
簡易接続文字列の例いくつかと、各文字列がどのように接続記述子に変換されるかを確認します。 - クライアントでの簡易接続ネーミングの構成
クライアントが簡易接続ネーミング・メソッドを使用する前に確認する必要がある要件および構成タスクについて学習します。 - DNS別名を使用するための簡易接続ネーミングの構成
ホスト・ネーミング・メソッドで提供されているように、必要に応じてホスト名にDNS別名を構成できます。
親トピック: ネーミング・メソッドの構成
8.4.1 簡易接続ネーミング・メソッドの理解
簡易接続ネーミング・メソッドは、データベースへの簡単なTCP/IP接続を提供します。
概要
このネーミング・メソッドは、クライアントがデータベースのホスト名の他にオプションのポートとサービス名を使用してデータベースに接続できるようにすることで、ホスト・ネーミング・メソッドの機能を拡張します。
CONNECT username@[//]host[:port][/[service_name][:server_type][/instance_name]]
Enter password: password
この接続識別子は、次のような接続記述子に変換されます。
(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host
)(PORT=port
)) (CONNECT_DATA= (SERVICE_NAME=service_name
) (SERVER=server_type
) (INSTANCE_NAME=instance_name
)) )
Oracle Databaseサーバーのインストールを「標準」モードで実行した場合、Oracleインスタンスで使用されるデフォルトのサービス名はデータベース名で、次の簡易接続構文を使用してそのインスタンスに接続できます。
SQLPLUS /nolog SQL> CONNECTusername
@host
/db_name
SQL> Enter password:password
簡易接続構文の例
sales-server
上のリスニング・エンドポイント1521を使用して、クライアントをデータベース・サービスのsales.us.example.com
に接続します。CONNECT scott@sales-server:1521/sales.us.example.com
CONNECT scott@//sales-server/sales.us.example.com
CONNECT scott@//sales-server.us.example.com/sales.us.example.com
各接続文字列の後に、データベース・サービスに接続するためのパスワードを入力する必要があります。
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
簡易接続ネーミングのための接続識別子
次のリストに、簡易接続の構文要素とそれぞれの説明を示します:
構文要素 | 説明 |
---|---|
|
URLまたはJDBC接続の場合、必須です。接続識別子の前にダブル・スラッシュ( scott@//sales-server
Enter password: SQL接続の場合、オプションです。接続識別子の前にダブル・スラッシュ( SQL> CONNECT scott@sales-server SQL> CONNECT scott@//sales-server |
|
必須。データベース・ホスト・コンピュータのホスト名またはIPアドレスを指定します。 ローカル・オペレーティング・システム構成でドメイン指定のときは、ホスト名は、ドメインで修飾されます。 値としてIPv4またはIPv6アドレスを使用できます。IPv6アドレスまたはIPv6アドレスに解決されるホスト名は、 |
|
省略可能。リスニング・ポートを指定します。 デフォルトは、1521です。 |
|
省略可能。データベースのサービス名を指定します。 ユーザーがサービス名を指定した場合、リスナーはその特定のデータベースにユーザーを接続します。サービス名を指定しない場合、リスナーは |
|
省略可能。使用するデータベース・サーバーのタイプを指定します。 このパラメータを指定すると、リスナーはクライアントを特定のタイプのサービス・ハンドラに接続します。
ノート: Oracle Call Interfaceのマニュアルでは、serverは |
|
省略可能。アクセスするデータベース・インスタンスを識別します。 インスタンス名は、初期化パラメータ・ファイルの |
親トピック: 簡易接続ネーミング・メソッドの構成
8.4.2 Easy Connect Plusのサポート
Oracle Database 19c以降では、Oracle Databaseに接続するためにアプリケーションで使用する簡易接続構文で、Easy Connect Plusと呼ばれる拡張機能がサポートされています。
Easy Connect Plus機能では、一般的なユースケースの場合のOracle Databaseのアプリケーション構成およびデプロイメントが簡略化されます。tnsnames.ora
やsqlnet.ora
などのOracle Netパラメータ・ファイルを構成する必要はありません。TNS_ADMIN
環境変数を設定する必要もありません。
この拡張機能があると、簡易接続で、TCPプロトコルとTCPSプロトコルの両方がサポートされます(以前は、TCPトランスポート・プロトコルのみがサポートされていました)。これにより、クライアント構成が、ネットワーク・セキュリティのためにTCPS接続が必須であるOracle Database Cloud Serviceに簡略化されます。
構文:
Easy Connect Plus機能を使用した、拡張された簡易接続構文は、次のとおりです:
[[protocol:]//]host1{,host12}[:port1]{,host2:port2}{;host1{,host12}[:port1]}[/[service_name][:server][/instance_name]][?parameter_name=value{¶meter_name=value}]
疑問符(?
)は名前/値ペアの始まりを示します。アンパサンド(&
)は名前/値ペアの間のデリミタです。
ここでは、簡易接続構文に次のものが含まれています:
-
プロトコル: 簡易接続アダプタで、接続文字列の一部としてプロトコルの指定がサポートされています。このプロトコルは、接続文字列内の各ホストに適用されます。
-
マルチホストまたはポート: 簡易接続アダプタで、接続文字列内の複数のホストまたはポートを受け入れることができます。これは、クライアント接続のロード・バランシングに役立ちます。
-
名前/値ペア: 簡易接続アダプタで、名前/値のペアのリストを受け入れることができます。名前/値の各ペアは、
DESCRIPTION
レベルのパラメータとして追加されます。次の名前がサポートされています:
ENABLE
FAILOVER
LOAD_BALANCE
RECV_BUF_SIZE
SEND_BUF_SIZE
SDU
SOURCE_ROUTE
RETRY_COUNT
RETRY_DELAY
CONNECT_TIMEOUT
TRANSPORT_CONNECT_TIMEOUT
-
アドレス・リスト: Oracle Database 23ai以降では、共通の特性があるプロトコル・アドレスのアドレス・リストを1つ以上指定できます。
-
セキュリティ属性: 次の
SECURITY
属性がTLSでサポートされています。SSL_SERVER_DN_MATCH=on/off
SSL_SERVER_CERT_DN=longDN
WALLET_LOCATION=Wallet location
ノート:
パラメータWALLET_LOCATION
は、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。Oracle Databaseサーバーの場合は、WALLET_LOCATION
を使用するかわりに、WALLET_ROOT
システム・パラメータの使用をお薦めします。
例
-
ADDRESSパラメータを使用して単一のプロトコル・アドレスを指定:
次の構文ではセッション・データ・ユニット(SDU)を指定しています
salesserver1:1521/sales.us.example.com?sdu=16384
次のような接続記述子に変換されます。
(DESCRIPTION= (SDU=16384) (ADDRESS=(PROTOCOL=tcp)(HOST=saleserver1)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)) )
同様に、次の構文は接続タイムアウト、トランスポート接続タイムアウト、および再試行回数の値を指定します
salesserver1:1521/sales.us.example.com?connect_timeout=1min&transport_connect_timeout=30sec&retry_count=3&retry_delay=2
次のような接続記述子に変換されます。
(DESCRIPTION= (retry_count=3)(retry_delay=2) (connect_timeout=1min)(transport_connect_timeout=30sec) (ADDRESS=(PROTOCOL=tcp)(HOST=salesserver1)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)) )
-
ADDRESS_LISTパラメータを使用して複数のプロトコル・アドレスを指定:
次の構文ではセッション・データ・ユニット(SDU)を指定しています
salesserver1:1521;saleserver2:1522/sales.us.example.com?sdu=16384
次のような接続記述子に変換されます。
(DESCRIPTION= (SDU=16384) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=saleserver1)(PORT=1521)) ) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=saleserver2)(PORT=1522)) ) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)) )
関連トピック
親トピック: 簡易接続ネーミング・メソッドの構成
8.4.3 簡易接続ネーミング・メソッドの例
簡易接続文字列の例いくつかと、各文字列がどのように接続記述子に変換されるかを確認します。
ネーミング・オプション | 接続文字列 | 接続記述子 |
---|---|---|
ホストあり。 ホスト名は |
sales-server |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=)) (ADDRESS= (PROTOCOL=TCP) (HOST=sales-server) (PORT=1521))) |
ホストとポートあり。 ホスト名は |
sales-server:3456 |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=)) (ADDRESS= (PROTOCOL=TCP) (HOST=sales-server) (PORT=3456))) |
ホストとサービス名あり。 ホスト名は |
sales-server/sales |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=sales)) (ADDRESS= (PROTOCOL=TCP) (HOST=sales-server) (PORT=1521))) |
IPv6アドレスあり。 ホストのIPv6アドレスは |
[2001:0db8:0:0::200C:417A]:80/sales IPv6ホスト名は大括弧で囲む必要があります。 |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=sales) (ADDRESS= (PROTOCOL=TCP) (HOST=2001:0db8:0:0::200C:417A) (PORT=80))) |
IPv6ホスト・アドレスあり。 ホストは |
sales-server:80/sales |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=sales) (ADDRESS= (PROTOCOL=TCP) (HOST=sales-server) (PORT=80))) |
ホスト、サービス名およびサーバーあり。 ホスト名は |
sales-server/sales:dedicated/inst1 |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=sales) (INSTANCE_NAME=inst1) (SERVER=dedicated)) (ADDRESS= (PROTOCOL=TCP) (HOST=sales-server) (PORT=1521))) |
ホストとインスタンス名あり。 ホスト名は |
sales-server//inst1 |
(DESCRIPTION= (CONNECT_DATA= (SERVICE_NAME=) (INSTANCE_NAME=inst1)) (ADDRESS= (PROTOCOL=TCP) (HOST=sales-server) (PORT=1521))) |
Easy Connect Plus機能を使用した簡易接続文字列の例をいくつか次に示します:
ネーミング・オプション | 接続文字列 | 接続記述子 |
---|---|---|
名前/値のペアのリスト( ホストは |
salesserver1:1521/sales?SDU=8128&retry_count=3&connect_timeout=10 |
|
複数のホストまたはポートあり。 ホストは |
salesserver1:1521,salesserver2,salesserver3:1522/sales |
|
プロトコルの指定あり。 ホストは |
tcps://salesserver1:1521/sales |
|
TLSでサポートされている ホストは |
tcps://sales-server:1521/sales?ssl_server_cert_dn="cn=sales,cn=OracleContext,dc=us,dc=example,dc=com"&wallet_location="/tmp/oracle" ノート: Oracle Databaseサーバーの場合、パラメータ Oracle Databaseサーバーの場合は、 |
|
複数のプロトコル・アドレスを指定するための |
|
|
8.4.4 クライアントでの簡易接続ネーミングの構成
クライアントが簡易接続ネーミング・メソッドを使用する前に確認する必要がある要件および構成タスクについて学習します。
次の条件が満たされると、クライアントは、簡易接続ネーミングを使用して、Oracle Databaseに接続できます。
-
Oracle Net Servicesソフトウェアがクライアントにインストールされている。
-
Oracle TCP/IPプロトコルは、クライアントとデータベース・サーバーの両方でサポートされている。
-
拡張接続記述子を必要とする機能がない。
外部プロシージャ・コール、異機種間サービスなどの追加の接続情報が必要な拡張機能を備えた大規模で複雑な環境には、簡易接続ネーミングは不向きです。このような場合は、別のネーミング・メソッドの使用をお薦めします。
簡易接続ネーミングは、インストール時に自動的に構成されます。使用前には、EZCONNECT
がsqlnet.ora
ファイルのNAMES.DIRECTORY_PATH
パラメータで指定されていることを確認する必要があります。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用できるネーミング・メソッドの順序を指定します。
ノート:
TCPS接続に簡易接続ネーミング・メソッド(PROTOCOL=TCPS
)を使用する場合、SSL_SERVER_DN_MATCH
は、デフォルトでTRUE
に設定されます。SSL_SERVER_DN_MATCH=TRUE
の設定では、クライアントは部分DNの一致を実行して、サーバーとリスナーの証明書が有効であることを確認します。
完全DN (部分DNではない)でチェックする場合は、SSL_SERVER_CERT_DN
にもDNを指定する必要があります。SSL_SERVER_CERT_DN
を設定していない場合は、クライアントがサーバーへの接続を確立するために、部分DN一致が成功する必要があります。SSL_SERVER_CERT_DN
を設定すると、クライアントがサーバーへの接続を確立するために、(サーバーとリスナーの両方の証明書による)完全DN一致が成功する必要があります。
次の手順では、簡易接続ネーミング・メソッドが構成されていることを確認する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」を展開し、次に「プロファイル」を選択します。
-
右ペインのリストから、「ネーミング」を選択します。
-
「メソッド」タブをクリックします。
「選択メソッド」リストに
EZCONNECT
がリストされていることを確認します。リストされていない場合は、ステップ5に進みます。リストされている場合は、ステップ7に進みます。 -
「使用可能なメソッド」リストから「EZCONNECT」を選択し、右矢印ボタンをクリックします。
-
「選択メソッド」リストで「EZCONNECT」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.ora
ファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにhostname
が最初に表示されます。NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)
8.4.5 DNS別名を使用するための簡易接続ネーミングの構成
ホスト・ネーミング・メソッドで提供されているように、ホスト名にDNS別名をオプションとして構成できます。
ホスト・ネーミングでは、クライアントは、次のパターンを使用する接続文字列を使用します。
CONNECTusername@DNS_alias
Enter password:password
次の手順では、DNS別名の構成方法について説明します。
-
リスナーにデータベース・サービスが登録されていることを確認します。
データベースがリスナーを検出できる場合は、サービス名を含むデータベース・サービスに関する情報は、サービス登録中に動的にリスナーに登録されます。リスナーは、次の条件が満たされる場合に検出されます。
-
デフォルトの名前が
LISTENER
のリスナーが、ポート1521のTCP/IP上で実行されている場合 -
LOCAL_LISTENERパラメータが初期化ファイルに設定されている場合
データベースでリスナーが見つからない場合は、リスナーの静的登録を構成できます。
-
-
ホスト名解決環境を確立します。
DNS、NISまたは集中管理されているTCP/IPホスト・ファイルの
/etc/hosts
などのメカニズムを構成できます。たとえば、あるデータベースのsales.us.example.com
というサービス名が、sales-server
という名前のコンピュータ上に存在する場合、/etc/hosts
ファイルのエントリは次のようになります。#IP address of server host name alias 192.0.2.35 sales-server sales.us.example.com
サービス名のドメイン部分は、ネットワーク・ドメインと一致する必要があります。
-
DNSの別名を使用してデータベースに接続します。
前のステップの例を使用すると、クライアントは、次のように接続文字列で
sales.example.com
を使用できます。CONNECT
username
@sales.us.example.com Enter password:password
クライアントとサーバーが同じ
us.example.com
などのドメインに所属していれば、クライアントは接続文字列にsales
を入力するだけでかまいません。
関連トピック
親トピック: 簡易接続ネーミング・メソッドの構成