複数の TCP ポートでリッスンするようにデータベース エンジンを構成する方法

SQL Server で TCP/IP を有効にしている場合、データベース エンジンは、IP アドレスと TCP ポート番号で構成される接続ポイントで着信接続をリッスンします。次の手順では、表形式のデータ ストリーム (TDS) エンドポイントを作成し、追加の TCP ポートで SQL Server がリッスンするように設定します。

2 つ目の TDS エンドポイントを作成する理由として考えられる点を次に示します。

  • 特定のサブネットに存在するローカル クライアント コンピュータの既定のエンドポイントへのアクセスを制限するようにファイアウォールを構成することによって、セキュリティを強化することができます。サポート チーム向けに SQL Server へのインターネット アクセスを保持する場合は、ファイアウォールからインターネットに公開する新しいエンドポイントを作成し、このエンドポイントへの接続の権利をサーバー サポート チームに制限します。

  • NUMA (Non-Uniform Memory Access) を使用する場合に、特定のプロセッサに接続を関係付けることができます。NUMA ノードに TCP/IP ポートを構成する方法の詳細については、「SQL Server での NUMA のサポート状況」を参照してください。

注意

新しい Transact-SQL エンドポイントを作成する場合は、既定の TDS エンドポイントに対する public の接続権限は取り消されます。既定のエンドポイントに対して public グループへのアクセスが必要な場合は、GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] to [public] ステートメントを使用してこの権限を再適用します。

TDS エンドポイントの構成手順は次のとおりです。実行する順序は問いません。

  • TCP ポートに対して TDS エンドポイントを作成し、必要に応じて既定のエンドポイントへのアクセスを復元します。

  • 対象のサーバー プリンシパルにエンドポイントへのアクセス権を与えます。

  • 選択された IP アドレス用の TCP ポート番号を指定します。

Windows ファイアウォールの既定の設定の詳細と、データベース エンジン、Analysis Services、Reporting Services、および Integration Services に影響する TCP ポートの説明については、「SQL Server のアクセスを許可するための Windows ファイアウォールの構成」を参照してください。

TDS エンドポイントを作成するには

  • 次のステートメントを実行し、サーバー上の利用できるすべての TCP アドレスのポート 1500 に対して CustomConnection という名前のエンドポイントを作成します。

    USE master
    GO
    CREATE ENDPOINT [CustomConnection]
    STATE = STARTED
    AS TCP
       (LISTENER_PORT = 1500, LISTENER_IP =ALL)
    FOR TSQL() ;
    GO
    
    USE master
    GO
    CREATE ENDPOINT [CustomConnection]
    STATE = STARTED
    AS TCP
       (LISTENER_PORT = 1500, LISTENER_IP =ALL)
    FOR TSQL() ;
    GO
    

エンドポイントへのアクセスを許可するには

  • 次のステートメントを実行し、corp ドメイン内の SQLSupport グループに対して CustomConnection エンドポイントへのアクセスを許可します。

    GRANT CONNECT ON ENDPOINT::[CustomConnection] to [corp\SQLSupport] ;
    GO
    
    GRANT CONNECT ON ENDPOINT::[CustomConnection] to [corp\SQLSupport] ;
    GO
    

追加の TCP ポートでリッスンするように SQL Server データベース エンジンを構成するには

  1. SQL Server 構成マネージャで [SQL Server ネットワークの構成] を展開し、[<instance_name> のプロトコル] をクリックします。

  2. [<instance_name> のプロトコル] を展開し、[TCP/IP] をクリックします。

  3. 右ペインで、無効になっている IP アドレスのうち、有効にする IP アドレスをそれぞれ右クリックし、[有効化] をクリックします。

  4. [IPAll] を右クリックし、[プロパティ] をクリックします。

  5. [TCP ポート] ボックスで、データベース エンジンがリッスンするポートを入力します。複数のポートを指定する場合はコンマで区切ります。たとえば、既定のポート 1433 がボックスに含まれている場合、「,1500」と入力します。つまり、ボックスの内容は "1433,1500" になります。次に [OK] をクリックします。

    注意

    一部の IP アドレスのポートだけを有効にする場合、[プロパティ] ダイアログ ボックスで、必要なアドレスに対してのみ追加のポートを構成します。次に、コンソール ペインで、[TCP/IP] を右クリックし、[プロパティ] をクリックします。[すべて受信待ち] ボックスで、[いいえ] を選択します。

  6. 左ペインで、[SQL Server のサービス] をクリックします。

  7. 右ペインで、[SQL Server <instance_name>] を右クリックし、[再起動] をクリックします。

    データベース エンジンが再起動すると、エラー ログには SQL Server がリッスンしているポートが記録されています。

新しいエンドポイントに接続するには

  • 次のステートメントを実行し、ACCT という名前のサーバー上にある、既定の SQL Server インスタンスの CustomConnection エンドポイントに接続します。このとき、信頼関係接続を使用します。ユーザーは [corp\SQLSupport] グループのメンバであると想定しています。

    sqlcmd -SACCT,1500
    
    sqlcmd -SACCT,1500