注意: 無法連接到叢集的具名執行個體透過防火牆

文章翻譯 文章翻譯
文章編號: 318432 - 檢視此文章適用的產品。
Bug #: 356696 (SHILOH_BUGS)
全部展開 | 全部摺疊

徵狀

如果您嘗試連線叢集的具名執行個體的 SQL Server 透過一個防火牆,並在連接字串中使用只執行個體名稱 (比方說 SQL_Virtual_Name\Instance_Name),連線失敗,而且可能會收到下列錯誤訊息之一:
錯誤訊息 1
找不到指定的 SQL 伺服器。
錯誤訊息 2
SQL Server 並不存在或者拒絕存取。
如果您在伺服器上執行網路追蹤您可以看到在伺服器實際上從用戶端電腦對虛擬伺服器 IP 位址的 UDP 連接埠 1434年上收到查詢 ; 不過,答案傳送與目前正在執行 SQL Server 叢集節點的實體的 IP 位址。

發生的原因

當用戶端電腦連線到執行叢集的執行個體 SQL Server 的電腦,如果連接字串未指定目的地的 TCP 連接埠時,用戶端程式庫會查詢伺服器來收集之執行個體的相關資訊的 UDP 1434 通訊埠上。

當伺服器傳回資訊時,網路框架會包含該實體節點,而不是虛擬伺服器的 IP 位址的 IP 位址。根據防火牆] 設定此網路封包可能被丟棄,並在用戶端可能不會收到任何回應。

其他可行方案

若要解決這個問題您可以:
  • 在連接字串中指定 TCP 連接埠號碼。比方說如果您的虛擬 SQL Server 伺服器稱為 VSERVER1,接聽 TCP/IP 連接埠號碼 2433年您連接字串會包含下列屬性。
    Data Source=VSERVER1\instancename,2433;Network Library=dbmssocn
    -or-

  • 使用 「 用戶端網路公用程式 」,在每個用戶端上建立 SQL Server 別名。在別名指定 「 網路程式庫使用 (TCP/IP) 和連接埠號碼。在您的連接字串中使用這個別名,且並未在連線字串中指定網路程式庫屬性。

    您也可以使用群組原則物件 (GPO) 網域控制站上自動化 SQL Server 別名在每個用戶端上的建立。假設您虛擬 SQL Server 執行個體稱為 VSERVER1\MyInstance。虛擬 SQL Server 執行個體正在接聽 TCP/IP 連接埠號碼 2433年上。您想要建立的 SQL Server 別名的名稱是 MyAlias。如果要自動執行的 SQL Server 別名建立,請依照下列步驟執行:
    1. 在網域控制站上建立.reg 檔案包含登錄項目做為 SQL Server 的別名。

      比方說建立一個 Myreg.reg 檔案,包含
      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
      "DSQUERY"="DBNETLIB"
      "MyAlias"="DBMSSOCN,VSERVER1\MyInstance,2433"
      下列資訊。
    2. 若要建立的組織單位 (OU),請依照下列步驟執行:
      1. 開啟 Active Directory 使用者和電腦],以滑鼠右鍵按一下 DomainName]、 指向 [新增],] 然後按一下 [組織單位
      2. 在 [新物件 ─ 組織單位] 對話方塊輸入該 OU 的名稱,然後再按一下 [[確定]
    3. 新增使用者及您想要套用到 OU 的 GPO 的電腦。若要執行此動作拖曳至您在步驟 2 中建立的 OU 的 [使用者和電腦]。
    4. 組織單位中新增一個 GPO。使用者登入指令碼或電腦的啟動指令碼,匯入.reg 檔,就會套用此 GPO。要這麼做,請您執行下列步驟:
      1. 您在步驟 2,建立該 OU 上按一下滑鼠右鍵,然後按一下 [內容]。
      2. 在 [屬性] 對話方塊按一下 [群組原則] 索引標籤。
      3. 在 [群組原則] 索引標籤上按一下 [新增],然後再按一下 [[編輯] 以開啟 [群組原則物件編輯器] 視窗。
      4. 如果您想要套用此 GPO,使用者或群組,請依照下列這個步驟:
        • 展開 [使用者設定]、 展開 [Windows 設定]、 按一下 [指令碼 (登入/登出),然後再按兩下 [登入]。
        如果您想要將這個 GPO 套用至電腦,請依照下列這個步驟:
        • 展開 [電腦設定]、 展開 [Windows 設定]、 按一下 [指令碼 (啟動/關機),然後再按兩下 [啟動]。
      5. 在 [內容] 對話方塊按一下 [顯示檔案 以開啟包含指令碼檔案的資料夾]。

        附註通用命名慣例 (UNC) 路徑出現在 [資料夾視窗的 [網址] 列中。
      6. 將 Myreg.reg 檔放到您在步驟 4e 中開啟的資料夾。
      7. 在同一個資料夾中建立.bat 檔案包含下列資訊。假設檔案名稱是 Mybat.bat.
        Regedit /s <Path>\Myreg.reg
        備忘稿
        • <Path>代表資料夾的 UNC 路徑。
        • / s 參數會指定匯入.reg 檔以無訊息模式。
      8. 在 [屬性] 對話方塊中,按一下 [新增]。
      9. [新增指令碼] 對話方塊中,按一下 [瀏覽]。
      10. 在 [瀏覽] 對話方塊找出 Mybat.bat] 檔案,然後按一下 [開啟舊檔]。
      11. [新增指令碼] 對話方塊中,按一下 [確定]
      12. 在 [屬性] 對話方塊中,按一下 [確定]
    5. 請確定使用者和您在步驟 3 中新增的電腦有 讀取 權限,而且 套用群組原則 」 特殊權限給 GPO。要這麼做,請您執行下列步驟:
      1. Active Directory 使用者和電腦,您在步驟 2,建立該 OU 上按一下滑鼠右鍵,然後按一下 [內容]。
      2. 在 [屬性] 對話方塊按一下 [群組原則] 索引標籤。
      3. 在 [群組原則] 索引標籤上按一下您在步驟 4 c 所建立的 GPO,然後按一下 [內容]。
      4. 在 [屬性] 對話方塊按一下 [安全性] 索引標籤。
      5. 在 [安全性] 索引標籤請確定使用者及套用此 GPO 的電腦都會在 [群組或使用者名稱
      6. 請確定 「 讀取 」 權限和 套用群組原則 」 特殊權限指定使用者和電腦。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

在下列情況中解決此問題:
  • 在 Windows Server 2008 上安裝 Microsoft SQL Server 2008
  • 與 Microsoft SQL Server 2008,在 Windows Server 2008 上一起 co-exists 的 Microsoft SQL Server 2005
在 Windows Server 2003 上的 Microsoft SQL Server 2008 中,就會發生這個問題。

其他相關資訊

如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
944390當您連線到執行 Windows Vista 或 Windows Server 2008 的用戶端電腦上已命名的 SQL Server 執行個體 FIX: 錯誤訊息:"指定 SQL 伺服器找不到 」 或 「 錯誤尋找伺服器/執行個體指定"
936302當您在 Windows Server 2008 上安裝 SQL Server 2005 時的已知問題清單

屬性

文章編號: 318432 - 上次校閱: 2009年5月5日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
關鍵字:?
kbmt kbbug kbpending KB318432 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:318432
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com