背景
SQLNCLI (Native Client) 連接 Express 版輕鬆,但 Access ADP、舊版應用強制使用 SQLOLEDB,常遇連線失敗。本文提供完整檢查清單。
第一階段:SQL Server Express 遠端存取啟用
- 開啟 SQL Server Surface Area Configuration → 「服務與連接的外部應用設定」。
- 選擇實例 → Database Engine → 遠端連接 → 勾選「本地和遠端連接」+「僅使用 TCP/IP」 → 套用。
- 同介面選擇 服務 → 停止再啟動 SQL Server 服務使設定生效。
第二階段:固定 TCP 監聽埠(預設 1433)
- 開啟 SQL Server Configuration Manager → 「SQL Server 網路設定」 → 選擇實例 (SQLEXPRESS)。
- 雙擊 TCP/IP → 「IP 位址」索引標籤 → 將所有 TCP 動態連接埠 清空(刪除 0)→ 所有 TCP 連接埠 設為 1433 → 套用。
- 「SQL Server 2005 服務」 → 右鍵 SQL Server (SQLEXPRESS) → 重新啟動。
第三階段:防火牆開放連接埠
控制台 → Windows 防火牆 → 例外 → 新增連接埠:
名稱 SQL 1433、連接埠 1433、TCP → 確定。
第四階段:UDL 檔測試連線
- 桌面新建
test.udl,雙擊開啟「資料連結屬性」。
- 提供者:Microsoft OLE DB Provider for SQL Server。
- 連線頁籤:
伺服器名稱:192.168.1.22\SQLEXPRESS,1433 (IP\實例名,埠)
驗證:指定使用者 sa + 密碼。
點擊「測試連接」→ 成功。
Access ADP 專用設定
ADP 固定使用 SQLOLEDB,設定同上,無需選擇提供者。若連非 Express 版(預設埠 1433),伺服器名稱可省略埠號。
常見失敗原因速查
- 動態連接埠未清空 → 實際監聽埠非 1433。
- Surface Area 遠端連接未啟用 TCP/IP。
- 防火牆攔截、防毒軟體阻擋。
- 實例名拼寫錯誤(區分大小寫)。
- SQL Server Browser 服務未啟動(命名實例需)。