Windows 防火牆規則必須設定為在連接到與 Database Engine 查詢編輯器不同電腦上執行之 Database Engine 實例時,啟用 Transact-SQL 偵錯。
設定 Transact-SQL 調試程式
Transact-SQL 調試程式同時包含伺服器端和用戶端元件。 伺服器端調試程式元件會隨 SQL Server 2005 Service Pack 2 (SP2) 或更新版本的 Database Engine 實例一起安裝。 用戶端除錯程式元件包括:
當您從 SQL Server 2008 或更新版本安裝用戶端工具時。
當您安裝 Microsoft Visual Studio 2010 或更新版本時。
當您從 Web 下載安裝 SQL Server Data Tools (SSDT) 時。
當 SQL Server Management Studio 或 SQL Server Data Tools 與 SQL Server Database Engine 實例相同的電腦上執行時,沒有執行 Transact-SQL 調試程式的設定需求。 不過,若要在連線到 Database Engine 的遠端實例時執行 Transact-SQL 調試程式,必須在兩部電腦上啟用 Windows 防火牆中的程式和埠規則。 SQL Server 安裝程式可能會建立這些規則。 如果您收到嘗試開啟遠端偵錯會話的錯誤,請確定計算機上定義了下列防火牆規則。
使用 具有進階安全性的 Windows 防火牆 應用程式來管理防火牆規則。 在 Windows 7 和 Windows Server 2008 R2 中,開啟 [控制面板],開啟 [Windows 防火牆],然後選取 [ 進階設定]。 在 Windows Server 2008 R2 中,您也可以開啟 Service Manager、在左窗格中展開 [ 設定 ],然後展開 [具有進階安全性的 Windows 防火牆]。
謹慎
在 Windows 防火牆中啟用規則可能讓您的電腦面臨一些防火牆原本要封鎖的安全威脅。 啟用遠端偵錯的規則會解除封鎖本主題所列的埠和程式。
伺服器上的防火牆規則
在執行 Database Engine 實例的計算機上,使用 具有進階安全性的 Windows 防火牆 來指定下列資訊:
為 sqlservr.exe新增輸入程序規則。 您必須針對每個需要支援遠端偵錯工作階段的實例設定規則。
在 [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按兩下 [ 輸入規則],然後在動作窗格中選取 [ 新增規則 ]。
在 [ 規則類型] 對話框中,選取 [ 程式],然後按 [ 下一步]。
在 [ 程式 ] 對話框中,選取 [此程序路徑]: ,然後輸入此實例 sqlservr.exe 的完整路徑。 根據預設,sqlservr.exe 會安裝在 C:\Program Files\Microsoft SQL Server\MSSQL12。InstanceName\MSSQL\Binn,其中 InstanceName 是預設實例的 MSSQLSERVER,以及任何具名實例的實例名稱。
在 [ 動作] 對話框中,選取 [ 允許連線],然後按 [ 下一步]。
在 [ 配置檔] 對話框中,選取當您想要開啟實例偵錯會話時描述計算機連線環境的任何配置檔,然後按 [ 下一步]。
在 [ 名稱] 對話框中,輸入此規則的名稱和描述,然後按兩下 [ 完成]。
在 [ 輸入規則] 清單中,以滑鼠右鍵按下您所建立的規則,然後在動作窗格中選取 [ 屬性 ]。
選取 [ 通訊協定和埠 ] 索引標籤。
在 [通訊協定類型:] 方塊中選取 [TCP],在 [本機埠:] 方塊中選取 [RPC 動態埠],按兩下 [套用],然後按兩下 [確定]。
為 svchost.exe 新增輸入應用程式規則,以啟用遠端偵錯器會話的 DCOM 通訊。
在 [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按兩下 [ 輸入規則],然後在動作窗格中選取 [ 新增規則 ]。
在 [ 規則類型] 對話框中,選取 [ 程式],然後按 [ 下一步]。
在 [ 程式 ] 對話框中,選取 [此程序路徑]: ,然後輸入 svchost.exe的完整路徑。 根據預設,svchost.exe 會安裝在 %systemroot%\System32\svchost.exe中。
在 [ 動作] 對話框中,選取 [ 允許連線],然後按 [ 下一步]。
在 [ 配置檔] 對話框中,選取當您想要開啟實例偵錯會話時描述計算機連線環境的任何配置檔,然後按 [ 下一步]。
在 [ 名稱] 對話框中,輸入此規則的名稱和描述,然後按兩下 [ 完成]。
在 [ 輸入規則] 清單中,以滑鼠右鍵按下您所建立的規則,然後在動作窗格中選取 [ 屬性 ]。
選取 [ 通訊協定和埠 ] 索引標籤。
在 [通訊協定類型:] 方塊中選取 [TCP],在 [本機埠:] 方塊中選取 [RPC 端點對應程式],按兩下 [套用],然後按兩下 [確定]。
如果網域原則需要透過 IPsec 完成網路通訊,您也必須新增開啟 UDP 連接埠 4500 和 UDP 連接埠 500 的輸入規則。
用戶端上的防火牆規則
在執行 Database Engine 查詢編輯器的電腦上,SQL Server 安裝程式或 SQL Server Data Tools 安裝程式可能已設定 Windows 防火牆以允許遠端偵錯。
如果您在嘗試開啟遠端偵錯會話時發生錯誤,您可以使用 具有進階安全性的 Windows 防火牆 來設定防火牆規則,以手動設定程式和埠例外狀況:
新增 svchost 的程式項目:
在 [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按兩下 [ 輸入規則],然後在動作窗格中選取 [ 新增規則 ]。
在 [ 規則類型] 對話框中,選取 [ 程式],然後按 [ 下一步]。
在 [ 程式 ] 對話框中,選取 [此程序路徑]: ,然後輸入 svchost.exe的完整路徑。 根據預設,svchost.exe 會安裝在 %systemroot%\System32\svchost.exe中。
在 [ 動作] 對話框中,選取 [ 允許連線],然後按 [ 下一步]。
在 [ 配置檔] 對話框中,選取當您想要開啟實例偵錯會話時描述計算機連線環境的任何配置檔,然後按 [ 下一步]。
在 [ 名稱] 對話框中,輸入此規則的名稱和描述,然後按兩下 [ 完成]。
在 [ 輸入規則] 清單中,以滑鼠右鍵按下您所建立的規則,然後在動作窗格中選取 [ 屬性 ]。
選取 [ 通訊協定和埠 ] 索引標籤。
在 [通訊協定類型:] 方塊中選取 [TCP],在 [本機埠:] 方塊中選取 [RPC 端點對應程式],按兩下 [套用],然後按兩下 [確定]。
為宿主資料庫引擎查詢編輯器的應用程式新增程式項目。 如果您需要從同一部計算機上的 SQL Server Management Studio 和 SQL Server Data Tools 開啟遠端偵錯會話,您必須為兩者新增程式規則:
在 [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按兩下 [ 輸入規則],然後在動作窗格中選取 [ 新增規則 ]。
在 [ 規則類型] 對話框中,選取 [ 程式],然後按 [ 下一步]。
在 [ 程式] 對話框中,選取 [此程序路徑:], 然後輸入這三個值的其中一個。
請輸入 SQL Server Management Studio 的 ssms.exe完整路徑。 根據預設,ssms.exe 會安裝在 C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\Management Studio 中。
針對 [SQL Server Data Tools] 輸入 devenv.exe的完整路徑:
根據預設,Visual Studio 2010 devenv.exe 位於 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE。
根據預設,Visual Studio 2012 的 devenv.exe 位於 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
您可以從用來啟動 SQL Server Management Studio 的快捷方式找到 ssms.exe 的路徑。 您可以從用來啟動 SQL Server Data Tools 的快捷方式找到 devenv.exe 的路徑。 以滑鼠右鍵按兩下快捷方式,然後選取 [ 屬性]。 可執行文件和路徑會列在 [ 目標 ] 方塊中。
在 [ 動作] 對話框中,選取 [ 允許連線],然後按 [ 下一步]。
在 [ 配置檔] 對話框中,選取當您想要開啟實例偵錯會話時描述計算機連線環境的任何配置檔,然後按 [ 下一步]。
在 [ 名稱] 對話框中,輸入此規則的名稱和描述,然後按兩下 [ 完成]。
在 [ 輸入規則] 清單中,以滑鼠右鍵按下您所建立的規則,然後在動作窗格中選取 [ 屬性 ]。
選取 [ 通訊協定和埠 ] 索引標籤。
在 [通訊協定類型:] 方塊中選取 [TCP],在 [本機埠:] 方塊中選取 [RPC 動態埠],按兩下 [套用],然後按兩下 [確定]。
啟動調試程式的需求
啟動 Transact-SQL 除錯程式的所有嘗試也必須符合下列需求:
SQL Server Management Studio 或 SQL Server Data Tools 必須在屬於 sysadmin 固定伺服器角色成員的 Windows 帳戶下執行。
要連接 Database Engine 查詢編輯器視窗,必須使用屬於 sysadmin 固定伺服器角色成員的 Windows 驗證或 SQL Server 驗證登入。
[資料庫引擎查詢編輯器] 視窗必須連接到 SQL Server 2005 Service Pack 2 (SP2) 或更新版本的 Database Engine 實例。 當 [查詢編輯器] 視窗連接到處於單一使用者模式的實例時,您無法執行調試程式。
伺服器必須透過 RPC 與客戶端通訊。 執行 SQL Server 服務的帳戶應該具有客戶端的驗證許可權。
另請參閱
Transact-SQL 偵錯工具
執行 Transact-SQL 偵錯工具
逐步執行 Transact-SQL 程式碼
Transact-SQL 偵錯工具資訊
資料庫引擎查詢編輯器 (SQL Server Management Studio)