SQL Server 2008 遠端連線需完成**伺服器端網路協定、外圍應用、防火牆**三層設定,並驗證用戶端連線字串。
伺服器端設定(七步驟)
- 啟用 TCP/IP 協定:
「SQL Server 組態管理員」→「SQL Server 網路組態」→「MSSQLSERVER 協定」→ 右鍵 `TCP/IP` → 「啟用」。
- 設定外圍應用允許遠端連線:
SSMS → 物件總管右鍵伺服器 → 「屬性」→ 「連線」→ 勾選「**允許遠端連線到此伺服器**」
或「方面」→ 「外圍應用配置器」→ `RemoteDacEnabled` = True。
- 重啟 SQL Server 服務:組態管理員 → 「SQL Server 服務」→ 右鍵 `MSSQLSERVER` → 「重新啟動」。
- 啟用 sa 帳號並設定強密碼:SSMS → 「安全性」→ 「登入」→ `sa` → 設定密碼、對應資料庫角色。
- 防火牆開放埠 1433 (TCP):
「控制台」→「Windows 防火牆」→「進階設定」→「輸入規則」→「新增規則」→「連接埠」→ TCP 1433 → 允許連線 → 套用至 Domain/Private/Public。
- 驗證瀏覽器服務:若使用具名實例,確保 `SQL Server Browser` 服務啟動(UDP 1434)。
- 用戶端連線測試:SSMS 連線對話框,「伺服器名稱」輸入 `IP\InstanceName` 或 `IP,1433`,驗證模式選「SQL Server 驗證」,輸入 `sa` 密碼。
常見錯誤與排查
| 錯誤訊息 | 可能原因 | 解決方向 |
| 「命名管道提供者:錯誤 40 - 無法開啟與 SQL Server 的連線」 | TCP/IP 未啟用、防火牆阻擋、服務未啟動、實例名稱錯誤 | 依序檢查上述 7 步驟 |
| 「登入失敗,使用者 'sa'」 | sa 未啟用、密碼錯誤、驗證模式為 Windows Only | SSMS 啟用 sa、混合模式、重設密碼 |
| 「伺服器不存在或存取被拒」 | IP 錯誤、埠號非 1433、具名實例未開 Browser 服務 | 確認 IP/埠/實例名、啟動 Browser |
C# 連線字串範例
具名實例:`Data Source=192.168.1.100\SQL2008` 或 `192.168.1.100,1433`。