「SQL Server 不存在或存取被拒」、「使用者登入失敗」、「逾時」是連線問題的三大經典錯誤。本文提供系統性的分層排查流程,從網路層到應用層逐層隔離問題根因。
ping <Server_IP> 成功 → 網路通;失敗 → 檢查網卡、交換器、防火牆 (含 ISA Server 等軟體防火牆)。ping <Server_Name> 失敗但 IP 成功 → DNS 問題。解決:修正 DNS、或在用戶端 C:\Windows\System32\drivers\etc\hosts 加入 172.168.10.24 myserver。telnet <Server_IP> 1433 (或自訂埠)。閃爍游標 = 成功;「無法開啟連線」 = 伺服端未啟動服務、未啟用 TCP/IP、埠號不符、防火牆封鎖。SQL Server 設定為 「僅 Windows 驗證模式」,導致 SQL Server 驗證帳號 (如 sa) 無法登入。
sa 帳號已啟用且密碼正確 (右鍵「安全性」→「登入」→ sa → 屬性)。Connection Timeout 設定 (預設 15 秒)。Pooling=true; Min Pool Size=5; Max Pool Size=100。sp_who2、sys.dm_exec_connections 檢查阻塞與連線數上限。| 工具 | 用途 |
|---|---|
| SQL Server Configuration Manager | 現代版網路設定 (取代舊版公用程式) |
| PortQry / Test-NetConnection (PS) | 進階埠掃描與連線測試 |
| SQL Server Profiler / Extended Events | 追蹤登入失敗事件 (ErrorLog 自動記錄) |
| ODBC 測試 / UDL 檔案 | 快速驗證驅動程式與連線字串 |
遵循「實體→IP→埠→服務→驗證→應用」的分層排查原則,90% 連線問題可在 10 分鐘內定位解決。