4 プロトコル・アドレス構成
ネットワーク・オブジェクトは、プロトコル・アドレスによって識別されます。接続が確立されると、クライアントとリクエストの受信者(リスナーまたはOracle Connection Manager)が同じプロトコル・アドレスで構成されます。
クライアントは、このアドレスを使用して接続リクエストを特定のネットワーク・オブジェクトが存在する場所に送信し、受信者はこのアドレスでリクエストのリスニングを行い、クライアント情報が自分の持っているアドレス情報に一致するかどうかに基づいて接続を許可します。
この章のトピックは、次のとおりです:
4.1 プロトコル・アドレス
プロトコル・アドレスは、ADDRESSとADDRESS_LISTの要素で構成されています。
4.1.1 ADDRESS
用途
プロトコル・アドレスを定義します。
使用上のノート
このパラメータは、ADDRESS_LIST
パラメータまたはDESCRIPTION
パラメータの下に配置します。DESCRIPTION
は、tnsnames.ora
ファイルまたはlistener.ora
ファイルで使用されます。
例
(ADDRESS= (PROTOCOL=tcp) (HOST=sales-server) (PORT=1521))
関連項目:
-
各プロトコルに必要なパラメータは、「プロトコル・パラメータ」を参照してください
-
グローバル・サービス管理の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください。
4.2 プロトコル・パラメータ
リスナーおよびOracle Connection Managerは、プロトコル・アドレスによって識別されます。
次の表に、Oracleプロトコル・サポートで使用するパラメータを示します。
表4-1 プロトコル固有のパラメータ
プロトコル | パラメータ | 説明 |
---|---|---|
IPC |
|
|
IPC |
|
サービスの一意の名前を指定します。サービス名またはサービスのOracleシステム識別子(SID)を使用することをお薦めします。 例: (PROTOCOL=ipc)(KEY=sales) |
|
|
|
|
Oracleサーバーの名前を指定します。 |
|
|
データベース・サーバーへの接続に使用されるパイプ名を指定します。これは、Named Pipesでサーバーに指定したものと同じ 例: (PROTOCOL=nmp)(SERVER=sales)(PIPE=dbpipe0) |
|
|
|
|
|
コンピュータのホスト名またはIPアドレスを指定します。 |
|
|
リスニング・ポート番号を指定します。 例: (PROTOCOL=sdp)(HOST=sales-server) |
|
|
|
|
|
コンピュータのホスト名またはIPアドレスを指定します。 |
|
|
リスニング・ポート番号を指定します。 例: (PROTOCOL=tcp)(HOST=sales-server) |
|
|
|
|
|
コンピュータのホスト名またはIPアドレスを指定します。 |
|
|
リスニング・ポート番号を指定します。 例: (PROTOCOL=tcps)(HOST=sales-server) |
|
|
値に |
|
|
インフィニバンド・インタフェースのIPアドレスを指定します。 |
|
|
リスニング・ポート番号を指定します。 例: (PROTOCOL=exadirect)(HOST=sales-server) |
4.4 ポート番号の制限
Oracleでは、1から65535のポート番号を許可しています。ただし、多くのオペレーティング・システムで、1023以下のポート番号が予約されています。たとえば、あるオペレーティング・システムでは、特権プロセスのみが1023以下のポートでTCP接続をリスニングできます。
リスナーを1024未満のポート番号でリスニングするように構成する必要がある場合、次の手順を実行します。
ノート:
使用するオペレーティング・システムによっては、別の手順が必要になることがあります。
-
Oracle Net Configuration AssistantまたはOracle Net Managerを使用して、プロトコル・アドレスおよびその他の構成パラメータでリスナーを構成します。
-
リスナーのあるマシンで
root
ユーザーとしてログインします。 -
リスナーの実行可能ファイル(
tnslsnr
)および依存共有ライブラリのファイル所有権とアクセス許可を設定し、root
ユーザーのみがこれらのファイルを変更できるようにします。 -
これらのファイルへの(
root
ディレクトリから始まる)パス名に含まれている個々のディレクトリのアクセス権も、同じ所有権とアクセス権が設定されていることを確認します。 -
root
ユーザーとしてリスナーを起動します。 -
システム・プロンプトに次のように入力します。
tnslsnr
listener_name
-useruser
-groupgroup
このコマンドで使用されているオプションは、次のとおりです。
表4-3 tnslsnrユーティリティのオプション
オプション 説明 listener_name
リスナーの名前を指定します。省略すると、デフォルト名の
LISTENER
が使用されます。user
スーパーユーザー(
root
)権限が必要ない場合にリスナーが使用する権限を持つユーザーを指定します。権限が必要な操作を実行した後、リスナーはroot
権限を永遠に放棄し元に戻すことはできません。group
スーパーユーザー(
root
)グループ権限が必要ない場合にリスナーが使用する権限を持つユーザーを指定します。権限が必要な操作を実行した後、リスナーはroot
グループ権限を永遠に放棄し元に戻すことはできません。このステップで、リスナーが指定されたユーザーおよびグループに切り替わります。すべての操作は(構成されているエンドポイントをリスニングする必要のあるシステム・コールを除いて)、指定されたユーザー権限またはグループ権限で実行されます。リスナーは
root
ユーザーに戻って予約済アドレス(1023以下のTCPポート)をリスニングします。listener.ora
に構成されているすべてのエンドポイントのリスニングを開始した後、リスナーは指定されたユーザーおよびグループに切り替わり、元に戻ることはありません。したがって、リスナーは最初のroot
権限を放棄します。-user
および-group
コマンドライン引数は、数値形式で指定されているユーザーおよびグループ識別子のみを受け入れます。たとえば、root権限を持つ
mylsnr
というリスナーを実行し、このリスナーでグループ識別子が16のユーザー37555の権限を使用する場合は、オペレーティング・システムのコマンド・プロンプトに次のように入力します。tnslsnr mylsnr -user 37555 -group 16
前述の例で、37555にはユーザー
oracle
ユーザーの識別子、16にはdba
グループの識別子を指定してもかまいません。 -
リスナーの起動後は、リスナー制御ユーティリティを使用してリスナーを管理できます。
重要なノート:
-
リスナー・プロセスを実行するユーザーとしては、
oracle
ユーザーを使用するか、オペレーティング・システム上で通常リスナー・プロセスを実行するユーザーを使用することをお薦めします。 -
セキュリティ上攻撃を受けやすくなるため、リスナー・プロセスを
root
ユーザーで実行しないでください。
-