Transact-SQL デバッガーを実行する前にファイアウォール規則を構成する

適用対象:SQL Server

データベース エンジン クエリ エディターとは別のコンピューター上で動作するデータベース エンジン インスタンスに接続するときに Transact-SQL デバッグを有効にするように Windows ファイアウォール規則を構成する必要があります。

この機能は、SSMS バージョン 17.9.1 以前で動作します。

Transact-SQL デバッガーを構成する

Transact-SQL デバッガーには、サーバー側とクライアント側のコンポーネントの両方が含まれています。 サーバー側のデバッガー コンポーネントは、 SQL Server 2005 (9.x) Service Pack 2 (SP2) 以降のバージョンのデータベース エンジンのインスタンスごとにインストールされます。 クライアント側のデバッガー コンポーネントは、以下の時点で含まれます。

  • SQL Server 2008 (10.0.x) 以降のバージョンからクライアント側のツールをインストールするとき

  • Microsoft Visual Studio 2010 以降のバージョンをインストールするとき

  • Web ダウンロードから SQL Server Data Tools (SSDT) をインストールするとき

SQL Server Management Studio または SQL Server Data Tools が SQL Server データベース エンジン インスタンスと同じコンピューター上で実行されている場合は、Transact-SQL デバッガーを実行するための構成要件はありません。 ただし、データベース エンジンのリモート インスタンスに接続するときに Transact-SQL デバッガーを実行するには、Windows ファイアウォールのプログラムとポートの規則を両方のコンピューターで有効にする必要があります。 これらの規則は、 SQL Server のセットアップによって作成できます。 リモート デバッグ セッションを開こうとしたときにエラーが発生する場合は、次のファイアウォール規則がコンピューターに定義されていることを確認します。

ファイアウォール規則を管理するには、 セキュリティが強化された Windows ファイアウォール アプリケーションを使用します。 Windows 7 と Windows Server 2008 R2のどちらの場合でも、 [コントロール パネル]を開き、 [Windows ファイアウォール]を開いて [詳細設定]をクリックします。 Windows Server 2008 R2 では、Service Manager を開き、左側のペインで [構成] を展開して、[セキュリティが強化された Windows ファイアウォール] を展開することもできます。

注意事項

Windows ファイアウォール規則を有効にした場合、ファイアウォールでブロックするように指定されているセキュリティ上の脅威にコンピューターがさらされる可能性があります。 リモート デバッグ用の規則を有効にすると、このトピックで示されているポートとプログラムのブロックが解除されます。

サーバーでのファイアウォール規則

データベース エンジンのインスタンスが実行されているコンピューター上で、 セキュリティが強化された Windows ファイアウォール を使用して、次の情報を指定します。

  • sqlservr.exe のインバウンド プログラム規則を追加します。 リモート デバッグ セッションをサポートする必要がある各インスタンス用の規則が必要です。

    1. [セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。

    2. [規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。

    3. [プログラム] ダイアログで [このプログラムのパス:] を選び、このインスタンスの sqlservr.exe への完全なパスを入力します。 既定では、sqlservr.exeC:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Binn にインストールされます。<InstanceName> は既定のインスタンスの場合は MSSQLSERVER で、名前付きインスタンスのインスタンス名です。

    4. [操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。

    5. [プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。

    6. [名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。

    7. [受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。

    8. [プロトコルおよびポート] タブをクリックします。

    9. [プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC 動的ポート] を選び、[適用] を選んでから、[OK] を選びます。

  • svchost.exe のインバウンド プログラム規則を追加して、リモート デバッガー セッションからの DCOM 通信を有効にします。

    1. [セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。

    2. [規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。

    3. [プログラム] ダイアログで [このプログラムのパス:] を選び、svchost.exe への完全なパスを入力します。 svchost.exe は、既定で %systemroot%\System32\svchost.exe にインストールされます。

    4. [操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。

    5. [プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。

    6. [名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。

    7. [受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。

    8. [プロトコルおよびポート] タブをクリックします。

    9. [プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC エンドポイント マッパー] を選び、[適用] を選んでから、[OK] を選びます。

  • ドメイン ポリシーにより IPSec 経由でネットワーク通信を行う必要がある場合は、UDP ポート 4500 と UDP ポート 500 を開く受信規則も追加する必要があります。

クライアントでのファイアウォール規則

データベース エンジン クエリ エディターを実行中のコンピューターでは、SQL Server セットアップまたは SQL Server Data Tools セットアップで Windows ファイアウォールがリモート デバッグを許可するように構成されている場合があります。

リモート デバッグ セッションを開こうとしたときにエラーが発生する場合は、 セキュリティが強化された Windows ファイアウォール を使用してファイアウォール規則を構成することで、プログラムとポートの例外を手動で構成できます。

  • svchost 用のプログラム エントリを追加します。

    1. [セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。

    2. [規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。

    3. [プログラム] ダイアログで [このプログラムのパス:] を選び、svchost.exe への完全なパスを入力します。 svchost.exe は、既定で %systemroot%\System32\svchost.exe にインストールされます。

    4. [操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。

    5. [プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。

    6. [名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。

    7. [受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。

    8. [プロトコルおよびポート] タブをクリックします。

    9. [プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC エンドポイント マッパー] を選び、[適用] を選んでから、[OK] を選びます。

  • データベース エンジン クエリ エディターをホストするアプリケーション用のプログラム エントリを追加します。 同じコンピューター上の SQL Server Management Studio と SQL Server Data Tools からリモート デバッグ セッションを開く必要がある場合は、両方に対してプログラム規則を追加する必要があります。

    1. [セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。

    2. [規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。

    3. [プログラム] ダイアログで、 [このプログラムのパス:] をクリックし、次の 3 つの値のいずれかを入力します。

      • SQL Server Management Studio では、ssms.exe の完全パスを入力します。 既定では、ssms.exe は C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\Management Studio にインストールされます。

      • SQL Server Data Tools では、devenv.exe の完全なパスを入力します。

        1. 既定では、Visual Studio 2010 の devenv.exeC:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE にあります。

        2. 既定では、Visual Studio 2012 の devenv.exeC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE にあります。

        3. SQL Server Management Studio を起動するために使用するショートカットで、ssms.exe のパスを確認できます。 devenv.exe へのパスは、SQL Server Data Tools の起動に使うショートカットからわかります。 ショートカットを右クリックし、[プロパティ] を選択します。 実行可能ファイルとパスが [ターゲット] ボックスに表示されます。

    4. [操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。

    5. [プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。

    6. [名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。

    7. [受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。

    8. [プロトコルおよびポート] タブをクリックします。

    9. [プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC 動的ポート] を選び、[適用] を選んでから、[OK] を選びます。

デバッガーを起動するための要件

Transact-SQL デバッガーを起動するには、次の要件をすべて満たしている必要があります。

  • SQL Server Management Studio または SQL Server Data Tools は、sysadmin 固定サーバー ロールのメンバーである Windows アカウントで実行されている必要があります。

  • データベース エンジン クエリ エディター ウィンドウは、sysadmin 固定サーバー ロールのメンバーである Windows 認証ログインまたは SQL Server 認証ログインを使って接続されている必要があります。

  • データベース エンジン クエリ エディター ウィンドウは、SQL Server 2005 (9.x) Service Pack 2 (SP2) 以降のバージョンのデータベース エンジンのインスタンスに接続されている必要があります。 クエリ エディター ウィンドウがシングル ユーザー モードのインスタンスに接続されているときは、デバッガーを実行できません。

  • サーバーとクライアントが RPC 経由で通信をしている必要があります。 SQL Server サービスが実行されているアカウントで、クライアントへのアクセス許可が認証されている必要があります。

次のステップ