架構動機
傳統 C/S 架構在廣域網部署面臨安全性挑戰;B/S 架構雖安全但開發複雜度高。利用 ISA Server 2000 作為 SQL Server 代理與防火牆,外部連線僅存取 ISA,由 ISA 透明轉導至內部 SQL Server,隱藏資料庫真實位址,兼顧開發效率與安全性。
核心元件簡介
| 元件 | 角色 |
| ISA Server 2000 | 企業級防火牆與高速快取,整合 Windows 2000 AD,支援封包過濾、發布規則、VPN |
| SQL Server 2000 | 關聯式資料庫與分析服務,支援 XML、OLAP、資料探勘 |
安裝前置作業
ISA Server
- 雙網卡:內部網段、外部網段
- TCP/IP 設定完成
- 執行
ISA Server Enterprise Initialization 設定陣列原則(建議:企業原則 + 陣列層級存取規則)
- 先安裝 Windows 2000 SP1+
- 建立區域地址表 (LAT) 僅包含內部私有 IP 範圍(RFC 1918)
SQL Server
- Windows NT/2000,建立網域服務帳號
- 關閉相關服務(含 IIS/ODBC)再安裝
- 關閉事件檢視器、登錄編輯器
關鍵配置步驟
1. SQL Server 啟用 TCP/IP 並設定 WinSock Proxy
- 「伺服器網路公用程式」→ 啟用 TCP/IP
- 「屬性」→ 新增 WinSock Proxy,IP 設為 ISA 外部 IP(非內部 IP)
- 設定連接埠(預設 1433)
2. 建立 Wspcfg.ini
路徑:與 sqlservr.exe 同目錄
[sqlservr]
ServerBindTCPPorts=1433
Persistent=1
KillOldSession=1
若埠非 1433,請同步修改。
3. SQL Server 安裝 Firewall Client
- 連接 ISA,存取
\\ISA\MSPCLNT 共享
- 安裝 Firewall Client
4. 重啟 SQL Server 服務
5. ISA 設定 LAT
- 將 SQL Server 內部 IP、ISA 內部 IP 加入 LAT
6. ISA 設定伺服器發布規則
- 「發布伺服器」→ 內部伺服器 IP = SQL 內部 IP
- ISA 伺服器 IP = ISA 外部 IP
- 協定對應選 Microsoft SQL Server
- 設定存取規則(允許特定用戶/網段)
7. 客戶端測試
HOSTS 檔加入 ISA 外部 IP 對應伺服器名稱
ping ISA名稱 驗證解析
- 用戶端工具以 ISA 名稱連線測試
架構優勢
- 資料庫真實 IP/名稱不曝露於外網
- ISA 統一進行身分驗證、封包檢查、日誌稽核
- 客戶端無感知,彷彿直連資料庫
- 保留 C/S 開發優勢(豐富 UI、高效率)
此架構適合需對外開放資料庫存取、且不想重寫為 B/S 架構的企業應用遷移案例。
- 上一篇文章: SQL Server 安全性強化手冊:版本、修補、帳號、預存程序與網路防護
- 下一篇文章: 樹狀結構在關聯式資料表中的儲存與遞迴統計查詢實作
Copyright ©
程式碼之家 All Rights Reserved