防火牆規則
- 入站:開放 TCP 1433(SQL Server 預設埠)。
- 出站:開放 TCP 1024-65535(客戶端動態埠回連)。
ADO 連接字串關鍵參數
Provider=SQLOLEDB;Password=xxx;Persist Security Info=True;User ID=yyy;
Initial Catalog=DBNAME;Data Source=ServerIP_or_DNS;Network Library=dbmssocn
Network Library=dbmssocn 強制使用 **TCP/IP Sockets Net-Library**,繞過 Named Pipes(防火牆常封鎖 445/139)。
Data Source 必須為 IP、DNS 名稱或 Hosts 檔別名,**不可用 "(local)" 或 "."**。
完整程式碼 (VBScript/ASP)
Set Conn = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
Set Cmd = CreateObject("ADODB.Command")
Conn.Open "Provider=SQLOLEDB;Password=pass;Persist Security Info=True;User ID=user;Initial Catalog=DBNAME;Data Source=192.168.1.100;Network Library=dbmssocn"
Cmd.ActiveConnection = Conn
Cmd.CommandText = "SELECT * FROM MyTable"
Set Rs = Cmd.Execute
' ... 處理 Rs ...
Rs.Close: Conn.Close
驗證連線
- 客戶端
telnet ServerIP 1433 成功 → 埠通。
- 用戶端網路公用程式 → 別名 → 通訊協定 TCP/IP → 伺服器別名填 IP → 以此別名測試 ODBC/ADO 連線。