在嘗試從遠程計算機連接到 Microsoft SQL Server 2005 實例時,可能會接收到錯誤消息。在使用任何程序連接到 SQL Server 時都可能會發生此問題。例如,在使用 SQLCMD 實用工具連接到 SQL Server 時收到以下錯誤消息:
Sqlcmd:錯誤:Microsoft SQL Native ClIEnt:建立到服務器的連接時發生錯誤。連接到 SQL Server 2005 時,默認設置 SQL Server 不允許遠程連接這個事實可能會導致失敗。
如果沒有將 SQL Server 2005 配置為接受遠程連接,則可能會發生此問題。默認情況下,SQL Server 2005 Express Edition 和 SQL Server 2005 Developer Edition 不允許遠程連接。若要配置 SQL Server 2005 以允許遠程連接,請完成以下所有步驟:
本文介紹如何完成這些步驟中的每一步。
若要在 SQL Server 2005 實例上啟用遠程連接並打開 SQL Server Browser 服務,請使用 SQL Server 2005 外圍應用配置器工具。在安裝 SQL Server 2005 時會安裝外圍應用配置器工具。
必須為要從遠程計算機連接到的每個 SQL Server 2005 實例啟用遠程連接。為此,請按照下列步驟操作:
如果您是通過使用實例名稱來運行 SQL Server 2005 並且在連接字符串中沒有使用特定的 TCP/IP 端口號,則必須啟用 SQL Server Browser 服務以允許遠程連接。例如,使用 <計算機名>\SQLEXPRESS 的默認實例名稱安裝的 SQL Server 2005 Express。不管您正在運行多少個 SQL Server 2005 實例,只需要啟用一次 SQL Server Browser 服務。若要啟用 SQL Server Browser 服務,請執行以下步驟。
重要說明:這些步驟可能會增加您的安全風險。這些步驟還可能導致您的計算機或網絡更易於受到惡意用戶或惡意軟件(如病毒)的攻擊。我們之所以推薦本文介紹的這一過程,是為了使程序能夠按照設計意圖運行,或者為了實現特定的程序功能。我們建議在進行這些更改之前,充分考慮在您的特定環境中實施這一過程可能帶來的風險。如果您選擇實施此過程,請采用任何適當的附加步驟以保護您的系統。我們建議只有確實需要這一過程時才使用它。
注意:在計算機上運行 SQL Server Browser 服務時,計算機顯示其上運行的每個 SQL Server 實例的實例名稱和連接信息。如果不啟用 SQL Server Browser 服務並且通過分配的 TCP 端口直接連接到 SQL Server 實例,則可以降低此風險。本文不討論如何通過 TCP 端口直接到 SQL Server 實例。有關 SQL Server Browser 服務和連接到 SQL Server 實例的更多信息,請參見《SQL Server 聯機叢書》中的以下主題:
這些步驟適用於 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 中包含的 Windows 防火牆版本。如果您使用的是不同的防火牆系統,請參閱相應的防火牆文檔以了解更多信息。
如果在運行 SQL Server 2005 的計算機上運行防火牆,將會阻止訪問 SQL Server 2005 的外部連接,除非 SQL Server 2005 和 SQL Server Browser 服務可以通過防火牆進行通信。必須為每個要接受遠程連接的 SQL Server 2005 實例創建一個例外,並為 SQL Server Browser 服務創建一個例外。
在安裝 SQL Server 2005 的程序文件時,SQL Server 2005 會使用一個實例 ID 作為路徑的一部分。若要為每個 SQL Server 實例創建一個例外,必須確定正確的實例 ID。若要獲取實例 ID,請執行以下步驟:
若要打開 Windows 防火牆,請單擊“開始”,再單擊“運行”,鍵入 firewall.cpl,然後單擊“確定”。
若要在 Windows 防火牆中為 SQL Server 2005 創建例外,請執行以下步驟:
若要在 Windows 防火牆中為 SQL Server Browser 服務創建例外,請執行以下步驟: