Transact-SQL デバッガーを実行する前にファイアウォール規則を構成する
適用対象: SQL Server
データベース エンジン クエリ エディターとは別のコンピューター上で動作するデータベース エンジン インスタンスに接続するときに Transact-SQL デバッグを有効にするように Windows ファイアウォール規則を構成する必要があります。
Transact-SQL デバッガーを構成する
Transact-SQL デバッガーには、サーバー側とクライアント側のコンポーネントの両方が含まれています。 サーバー側のデバッガー コンポーネントは、 SQL Server データベース エンジンの各インスタンスと共にインストールされます。 クライアント側のデバッガー コンポーネントは、以下の時点で含まれます。
Microsoft Visual Studio 2019 以降のバージョンをインストールするとき
Web ダウンロードから SQL Server Data Tools (SSDT) をインストールするとき
SQL Server Data Tools が SQL Server データベース エンジン インスタンスと同じコンピューター上で実行されている場合は、Transact-SQL デバッガーを実行するための構成要件はありません。 ただし、データベース エンジンのリモート インスタンスに接続するときに Transact-SQL デバッガーを実行するには、Windows ファイアウォールのプログラムとポートの規則を両方のコンピューターで有効にする必要があります。 リモート デバッグ セッションを開こうとしたときにエラーが発生する場合は、次のファイアウォール規則がコンピューターに定義されていることを確認します。
ファイアウォール規則を管理するには、 セキュリティが強化された Windows ファイアウォール アプリケーションを使用します。 Windows 7 と Windows Server 2008 R2のどちらの場合でも、 [コントロール パネル]を開き、 [Windows ファイアウォール]を開いて [詳細設定]をクリックします。 Windows Server 2008 R2 では、Service Manager を開き、左側のペインで [構成] を展開して、[セキュリティが強化された Windows ファイアウォール] を展開することもできます。
注意事項
Windows ファイアウォール規則を有効にした場合、ファイアウォールでブロックするように指定されているセキュリティ上の脅威にコンピューターがさらされる可能性があります。 リモート デバッグ用の規則を有効にすると、このトピックで示されているポートとプログラムのブロックが解除されます。
サーバーでのファイアウォール規則
データベース エンジンのインスタンスが実行されているコンピューター上で、 セキュリティが強化された Windows ファイアウォール を使用して、次の情報を指定します。
sqlservr.exe
のインバウンド プログラム規則を追加します。 リモート デバッグ セッションをサポートする必要がある各インスタンス用の規則が必要です。[セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。
[規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。
[プログラム] ダイアログで [このプログラムのパス:] を選び、このインスタンスの
sqlservr.exe
への完全なパスを入力します。 既定では、sqlservr.exe
はC:\Program Files\Microsoft SQL Server\MSSQL16.<InstanceName>\MSSQL\Binn
にインストールされます。<InstanceName>
は既定のインスタンスの場合はMSSQLSERVER
で、名前付きインスタンスのインスタンス名です。[操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。
[プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。
[名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。
[受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。
[プロトコルおよびポート] タブをクリックします。
[プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC 動的ポート] を選び、[適用] を選んでから、[OK] を選びます。
svchost.exe
のインバウンド プログラム規則を追加して、リモート デバッガー セッションからの分散コンポーネント オブジェクト モデル (DCOM) 通信を有効にします。[セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。
[規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。
[プログラム] ダイアログで [このプログラムのパス:] を選び、
svchost.exe
への完全なパスを入力します。svchost.exe
は、既定で%systemroot%\System32\svchost.exe
にインストールされます。[操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。
[プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。
[名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。
[受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。
[プロトコルおよびポート] タブをクリックします。
[プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC エンドポイント マッパー] を選び、[適用] を選んでから、[OK] を選びます。
ドメイン ポリシーにより IPSec 経由でネットワーク通信を行う必要がある場合は、UDP ポート 4500 と UDP ポート 500 を開く受信規則も追加する必要があります。
クライアントでのファイアウォール規則
データベース エンジン クエリ エディターを実行中のコンピューターでは、Windows ファイアウォールがリモート デバッグを許可するように構成されます。
リモート デバッグ セッションを開こうとしたときにエラーが発生する場合は、 セキュリティが強化された Windows ファイアウォール を使用してファイアウォール規則を構成することで、プログラムとポートの例外を手動で構成できます。
svchost 用のプログラム エントリを追加します。
[セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。
[規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。
[プログラム] ダイアログで [このプログラムのパス:] を選び、
svchost.exe
への完全なパスを入力します。svchost.exe
は、既定で%systemroot%\System32\svchost.exe
にインストールされます。[操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。
[プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。
[名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。
[受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。
[プロトコルおよびポート] タブをクリックします。
[プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC エンドポイント マッパー] を選び、[適用] を選んでから、[OK] を選びます。
SQL Server Data Tools のデータベース エンジン クエリ エディターをホストするアプリケーション用のプログラム エントリを追加します。 同じコンピューター上の SQL Server Data Tools の複数のインストールからリモート デバッグ セッションを開く必要がある場合は、両方に対してプログラム規則を追加する必要があります。
[セキュリティが強化された Windows ファイアウォール]で、左側のペインの [受信の規則]をクリックし、[操作] ペインの [新しい規則] をクリックします。
[規則の種類] ダイアログで [プログラム] を選んで、[次へ] を選びます。
[プログラム] ダイアログで、 [このプログラムのパス:] をクリックし、次の 3 つの値のいずれかを入力します。
SQL Server Data Tools では、
devenv.exe
の完全なパスを入力します。既定では、Visual Studio 2022 の
devenv.exe
はC:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE
にあります。既定では、Visual Studio 2019 の
devenv.exe
はC:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
にあります。devenv.exe
へのパスは、SQL Server Data Tools の起動に使うショートカットからわかります。 ショートカットを右クリックし、[プロパティ] を選択します。 実行可能ファイルとパスが [ターゲット] ボックスに表示されます。
[操作] ダイアログで [接続を許可する] を選んで、[次へ] を選びます。
[プロファイル] ダイアログで、インスタンスでデバッグ セッションを開くときのコンピューター接続環境が記述されているプロファイルを選んで、[次へ] を選びます。
[名前] ダイアログでこの規則の名前と説明を入力し、[完了] を選びます。
[受信の規則] の一覧で、作成した規則を右クリックし、[操作] ペインの [プロパティ] を選択します。
[プロトコルおよびポート] タブをクリックします。
[プロトコルの種類:] ボックスで [TCP] を選び、[ローカル ポート:] ボックスで [RPC 動的ポート] を選び、[適用] を選んでから、[OK] を選びます。
デバッガーを起動するための要件
Transact-SQL デバッガーを起動するには、次の要件をすべて満たしている必要があります。
SQL Server Data Tools が、sysadmin 固定サーバー ロールのメンバーである Windows アカウントで実行されている必要があります。
データベース エンジン クエリ エディター ウィンドウは、sysadmin 固定サーバー ロールのメンバーである Windows 認証ログインまたは SQL Server 認証ログインを使って接続されている必要があります。
データベース エンジン クエリ エディター ウィンドウが、SQL Server データベース エンジンのインスタンスに接続されている必要があります。 クエリ エディター ウィンドウがシングル ユーザー モードのインスタンスに接続されているときは、デバッガーを実行できません。
サーバーとクライアントが RPC 経由で通信をしている必要があります。 SQL Server サービスが実行されているアカウントで、クライアントへのアクセス許可が認証されている必要があります。