設定 Transact-SQL 偵錯工具
當連線的資料庫引擎執行個體與資料庫引擎查詢編輯器在不同電腦上執行時,就必須設定 Windows 防火牆規則才能啟用 Transact-SQL 偵錯。
設定 Transact-SQL 偵錯工具
Transact-SQL 偵錯工具同時包含伺服器端和用戶端元件。 伺服器端偵錯工具元件會隨 SQL Server 2005 Service Pack 2 (SP2) 或更新版本的每個 Database Engine 實例一起安裝。 包括用戶端偵錯工具元件的情況:
當您從 SQL Server 2008 或更新版本安裝用戶端工具時。
當您安裝 Microsoft Visual Studio 2010 或更新版本時。
當您從網頁下載安裝 SQL Server Data Tools (SSDT) 時。
當 SQL Server Management Studio 或 SQL Server Data Tools 在 SQL Server Database Engine 執行個體所在的相同電腦上執行時,不需要設定即可執行 Transact-SQL 偵錯工具。 不過,當連線至遠端資料庫引擎執行個體時,如需執行 Transact-SQL 偵錯工具,就必須在這兩部電腦上啟用 Windows 防火牆中的程式和連接埠規則。 這些規則可以由 SQL Server 安裝程式建立。 如果您嘗試開啟遠端偵錯工作階段時發生錯誤,請確定您的電腦上已定義下列防火牆規則。
使用 [具有進階安全性的 Windows 防火牆] 應用程式來管理防火牆規則。 在 Windows 7 和 Windows Server 2008 R2 中,依序開啟 [控制台] 和 [Windows 防火牆],然後選取 [進階設定]。 在 Windows Server 2008 R2 中,您也可以開啟 [服務管理員],然後展開左窗格中的 [組態],再展開 [具有進階安全性的 Windows 防火牆]。
警告
在 [Windows 防火牆] 中啟用規則可能會讓您的電腦暴露在防火牆設計可封鎖的安全性威脅下。 啟用遠端偵錯規則會解除封鎖本主題中列出的通訊埠和程式。
伺服器上的防火牆規則
在執行資料庫引擎執行個體的電腦上,使用 [具有進階安全性的 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 的輸入規則。
用戶端上的防火牆規則
在執行資料庫引擎查詢編輯器的電腦上,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 帳戶底下執行。
您必須使用屬於系統管理員 (sysadmin) 固定伺服器角色成員的 Windows 驗證或 SQL Server 驗證登入來連線資料庫引擎查詢編輯器視窗。
Database Engine 查詢編輯器視窗必須從 SQL Server 2005 Service Pack 2 (SP2) 或更新版本連接到 Database Engine 的實例。 當 [查詢編輯器] 視窗連接至處於單一使用者模式下的執行個體時,您就無法執行偵錯工具。
伺服器必須透過 RPC 回應用戶端。 執行SQL Server服務的帳戶應該具有用戶端的驗證許可權。
另請參閱
Transact-SQL 偵錯工具
執行 Transact-SQL 偵錯工具
逐步執行 Transact-SQL 程式碼
Transact-SQL 偵錯工具資訊
資料庫引擎查詢編輯器 (SQL Server Management Studio)