首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server Error 1326 遠程連接失敗完整排查指南

     編輯:MySQL 資料庫相關知識

錯誤現象

使用 SSMS 連接遠程 SQL Server 實例失敗,典型錯誤信息:

An error has occurred while establishing a connection to the server.
(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)
(Microsoft SQL Server, Error: 1326)

核心提示:Named Pipes Provider 錯誤,實際多為網絡/配置層面阻斷,而非認證失敗。

六步系統化排查法

步驟 1:確認服務運行狀態

  • SQL Server Configuration Manager → SQL Server Services → 確認 MSSQLSERVER (或命名實例) 狀態為 Running
  • 或服務管理器中查找 SQL Server (MSSQLSERVER)
  • 網絡內可用實例掃描:sqlcmd -L (L 大寫)

步驟 2:啟用 TCP/IP 協議

SQL Server Configuration Manager → SQL Server Network Configuration → 目標實例 → TCP/IP → 右鍵啟用

修改後必須重啟 SQL Server 服務生效!建議同步啟用 Named Pipes 作為備用。

步驟 3:防火牆放行端口

默認實例端口 1433,命名實例為動態端口(需固定化)。

控制面板 → Windows 防火牆 → 高級設置 → 入站規則 → 新規則
→ 端口 → TCP → 特定本地端口: 1433 → 允許連接 → 全部勾選 → 命名: SQL_TCP_1433

若使用命名實例,還需放行 sqlbrowser.exe (UDP 1434)。

步驟 4:啟用遠程連接權限

SSMS → 右鍵實例 → 屬性 → Connections → 勾選 Allow remote connections to this server

默認安裝此項為關閉,極易被忽略。

步驟 5:啟用 SQL Server Browser 服務

命名實例且未固定端口時必須啟用:

  • Configuration Manager → SQL Server Browser → 啟動
  • 設置為自動啟動

步驟 6:防火牆放行 sqlbrowser.exe

入站規則 → 新規則 → 程序路徑: C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe
→ 允許連接 → 全部勾選 → 命名: SQL_Browser

進階驗證與常見坑點

端口佔用檢查

# 查看 1433 端口監聽情況
netstat -an | findstr 1433
# 查看進程 PID
tasklist | findstr 
# Telnet 測試連通性
telnet  1433

三步快速自查清單

  1. 用戶名/密碼是否正確(錯誤 18456 而非 1326)
  2. 實例屬性 → Connections → 遠程連接是否勾選
  3. 防火牆是否攔截 1433(可暫時關閉防火牆驗證)

最佳實踐:使用別名

Configuration Manager → SQL Native Client Configuration → Aliases → 新建別名

  • 解耦應用連接字符串與實際 IP/實例名
  • 遷移/切換實例時僅需修改別名配置,應用層零改動
  • 支援同一別名指向不同環境(開發/測試/生產)快速切換

總結

Error 1326 本質是網絡層面的連接建立失敗。遵循「服務→協議→防火牆→權限→Browser→別名」六步法,可系統性覆蓋 95% 以上連接故障場景。生產環境建議固定命名實例端口、關閉 Named Pipes、僅開放 TCP/IP,縮小攻擊面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved