この付録では、WindowsでのOracle Net Servicesの構成について説明します。Oracle Net Servicesの構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
この付録の項目は次のとおりです。
Oracle Automatic Storage Management (Oracle ASM)を使用しているOracle DatabaseおよびOracle Grid Infrastructureによって管理されているデータベースでは、Windowsネイティブ認証を使用する必要があり、これはデフォルトで有効になります。この認証を使用していることを確認するには、デフォルトでORACLE_HOME
\network\admin
にあるsqlnet.ora
ファイルでNTSが有効になっていることを確認します。次に例を示します。
sqlnet.authentication_services=(NTS)
レジストリには、Oracle Net Servicesのパラメータおよびサブキーのエントリが含まれます。Oracle Net Servicesの構成パラメータを正常に追加または変更するには、そのパラメータの場所および適用される規則を理解する必要があります。
サービスに対応するサブキーは、\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
に含まれます。インストールされた製品に応じて、Oracle Net Servicesは次のうちのすべてまたは一部で構成されます。
各サービスのサブキーには、表B-1に示すパラメータが含まれます。
Oracle Databaseでは、リスナーはシステムの再起動時に自動的に起動するように設定されています。Windowsの「コントロール パネル」、「管理ツール」の順に選択し、「サービス」のステータスを表示することで、リスナーのステータスを確認できます。
通常Windowsコンピュータで稼働するネット・リスナー・サービスは、常に1つのみにするようお薦めします。この単一のリスナーで複数のデータベースをサポートできます。2つの異なるネット・リスナー・サービスをWindowsコンピュータ上で同時に稼働させる必要がある場合は、それらが異なるTCP/IPポート番号でリスニングするよう設定してください。
同じIPアドレスおよびポートを異なるリスナーに使用した場合でも、2番目以降のリスナーにバインドの障害は発生しません。Windowsでは、すべてのリスナーが同じIPアドレスおよびポートでリスニングでき、その結果、リスナーは予期せぬ動作をします。これは、Windowsオペレーティング・システムにおけるTCP/IP上の問題である可能性が高く、Microsoft社に報告されました。
Oracle Database 12cリリース1 (12.1)から、Oracle Net Services (Oracle Net Listener、CMADMIN、CMANプロキシ・リスナーなど)は、インストール時に指定されたOracleホーム・ユーザー・アカウント(Windowsユーザー・アカウント)で実行します。標準のWindowsユーザー・アカウント(管理者以外)をOracleホーム・ユーザーとして指定することをお薦めします。Oracle Universal Installerには権限が制限された新しいWindowsユーザー・アカウントを作成するオプションもあります。データベースのインストールで、Windowsの組込みアカウントをOracleホーム・ユーザーとして使用する場合、Oracleリスナー・サービスは権限の高いローカル・システム・アカウント(LSA)で実行します。CMANのインストールで、Windowsの組込みアカウントをOracleホーム・ユーザーとして使用する場合、CMADMINおよびCMANプロキシ・リスナーは権限の低いLocalServiceアカウントで実行します。
注意: Oracle Database 12cリリース1 (12.1)から、lsnrctl startコマンドまたはCMAN proxy startコマンドでは、関連サービスが存在しない場合に、パスワードを求められる場合があります。これは、指定した別名に対する最初の実行で発生します。サービスが作成されると、以降のすべてのstartコマンドではパスワードは要求されません。しかし、「Oracleホーム・ユーザー」として「組込みアカウントの使用」を選択した場合は、パスワードは要求されません。 |
関連項目:
|
Windowsでは、次のパラメータを使用できます。
Oracle Net Servicesでは、最初に環境変数としてパラメータをチェックし、その定義された値を使用します。環境変数が定義されていない場合は、レジストリでこれらのパラメータが検索されます。
パラメータLOCAL
を使用すると、接続文字列に接続識別子を指定しなくても、Oracle Databaseに接続できます。パラメータLOCAL
の値は、ネット・サービス名などの接続識別子です。たとえば、パラメータLOCAL
がfinance
として指定されている場合、SQL*Plusから次のコマンドを使用してデータベースに接続できます。
SQL> CONNECT SMITH
Enter password: password
次のコマンドは使用しません。
SQL> CONNECT SMITH@finance
Enter password: password
Oracle Net Servicesでは、LOCAL
が環境変数またはパラメータとしてレジストリに定義されているかをチェックし、finance
をサービス名として使用します。このパラメータが存在する場合、Oracle Net Servicesは接続します。
パラメータTNS_ADMIN
を追加すると、Oracle Net Services構成ファイルのディレクトリ・パスをデフォルトの場所ORACLE_HOME
\network\admin
から変更できます。たとえば、TNS_ADMIN
をORACLE_HOME
\test\admin
に設定すると、構成ファイルはORACLE_HOME
\test\admin
から使用されます。
パラメータUSE_SHARED_SOCKET
をtrue
に設定すると、共有ソケットの使用が可能になります。このパラメータがtrue
に設定されている場合、ネットワーク・リスナーにより、クライアント接続のソケット記述子がデータベース・スレッドに渡されます。その結果、クライアントはデータベース・スレッドへの新しい接続を確立しないため、データベース接続時間が改善されます。また、すべてのデータベース接続が、ネットワーク・リスナーにより使用されるポート番号を共有するため、サード・パーティのプロキシ・サーバーを設定している場合に役立ちます。
このパラメータは、TCP/IP環境の専用サーバー・モードでのみ機能します。このパラメータが設定されている場合、Oracle Databaseリスナーを使用して、Oracle Databaseを起動することはできません。リスナーとは異なるOracleホームと関連付けられているOracle Databaseのインスタンスの専用サーバーを起動し、共有ソケットを使用できるようにするには、両方のOracleホームでパラメータUSE_SHARED_SOCKET
を設定する必要があります。
次の項では、Windowsオペレーティング・システムにおけるOracle Net Services専用の詳細な構成手順について説明します。
Oracle Net Servicesでは、Windows認証を使用する、Windowsオペレーティング・システムの認証方式を提供しています。
サービスOracle
HOMENAME
TNSListener
に有効なユーザーIDおよびパスワードがない場合、ネットワーク・リスナー・サービスはOracle Namesにより作成されたNamed Pipesを開けない可能性があります。
関連項目: ネットワーク・リスナー権限を設定する方法は、オペレーティング・システムのドキュメントを参照 |
この項では、外部プロシージャのみを処理するようにWindowsオペレーティング・システム上のリスナーを構成するため、『Oracle Database Net Services管理者ガイド』に記載されている一般情報を補足します。セキュリティ・レベルを高めるには、oracle
ユーザーよりも低い権限を持つユーザー・アカウントから外部プロシージャのリスナーを起動します。Windowsオペレーティング・システムの場合、これにはユーザー・アカウントをLocalSystemからOracle
HOMENAME
TNSListener
extproc_listener_name
サービスの権限のないローカル・ユーザーに変更する必要があります。
注意: 次の手順は、『Oracle Database Net Services管理者ガイド』の外部プロシージャのデフォルト構成に関する項で説明している手順と、高度なセキュリティのための外部プロシージャ構成の変更に関する項の手順1から5を実行したことを前提としています。 |
リスナー・アカウントを変更するには、次のようにします。
新規ユーザー・アカウントを作成し、「サービスとしてログオン」権限を付与します。
注意: このユーザー・アカウントに、oracle が所有しているファイルへの一般アクセス権がないことを確認してください。具体的には、このユーザーはデータベース・ファイルまたはOracle Databaseサーバー・アドレス空間への読取り/書込み権限を持つことができません。また、このユーザーは、listener.ora ファイルへの読取りアクセス権を持つ必要がありますが、書込みアクセス権は持つことはできません。 |
Oracle
HOMENAME
TNSListener
extproc_listener_name
サービスを停止します。
関連項目: 「サービス」ダイアログへのアクセスとサービスの停止の方法は、オペレーティング・システムのドキュメントを参照してください。 |
注意: Oracle HOMENAME TNSListener extproc_listener_name サービスが存在しない場合は、コマンド・プロンプトから次のコマンドを実行します。
lsnrctl start extproc_listener_name
これにより、 |
「サービス」ダイアログでOracle
HOMENAME
TNSListener
extproc_listener_name
サービスを選択し、サービスのプロパティを表示します。
「アカウント」を選択し、ユーザー名とパスワードを入力します。
「開始」をクリックしてリスナーを起動します。権限のないローカル・ユーザーとして実行しているリスナーの起動に、リスナー制御ユーティリティを使用することはできないため、この方法でリスナーを起動する必要があります。
注意: NET START Oracle HOMENAME TNSListener extproc_listener_name を使用してコマンド・プロンプトからリスナーを起動することもできます。低い権限でリスナーを実行すると、リスナー制御ユーティリティのSET コマンドを使用して、ファイルlistener.ora のこのリスナーの構成を変更することはできません。リスナー制御ユーティリティを使用して、このリスナーに対してリスナーの停止などの他の管理タスクを実行できます。リスナーを実行する前に、listener.ora ファイル構成を完了することをお薦めします。 |