預設 SQL Server 啟用 TCP/IP 通訊協定,僅需帳號密碼即可連線,若連線字串硬編碼於前端程式,極易遭反編譯洩露。改用命名管道,強制要求用戶具備作業系統層級的資源存取權限,大幅提升防護等級。
安全性比較
| 面向 | TCP/IP (預設) | 命名管道 |
| 驗證層級 | SQL Server 帳號/密碼或 Windows 整合驗證 | 需先通過 OS 層級 SMB/檔案共享驗證 |
| 網路暴露 | 埠 1433 直接對外,易遭掃描攻擊 | 僅限內部網域/受信任主機存取 IPC$ 共享 |
| 連線字串風險 | 帳密若洩露即可遠程連線 | 帳密不足,還需 OS 權限 |
伺服器端設定
- 開啟「伺服器網路公用程式」(
svrnetcn.exe)。
- 「一般」頁移除多餘協定,點「新增」→ 選「Named Pipes」。
- 「伺服器名稱」填入本機電腦名,確定重啟 SQL Server 服務。
用戶端設定
- 開啟「用戶端網路公用程式」(
cliconfg.exe)。
- 同樣移除 TCP/IP,新增 Named Pipes 別名,伺服器別名填目標主機名或 IP。
連線驗證兩種情境
情境 A:用戶端已加入網域/具備資源存取權
直接使用 Windows 整合驗證或 SQL 驗證連線,無額外動作。
情境 B:工作群組環境/無網域信任
- 用戶端「執行」輸入
\\ServerIP 或 \\ServerName。
- 彈出認證對話框,輸入伺服器端有效的 Windows 帳號/密碼。
- 驗證成功建立 IPC$ 會話後,即可連線 SQL Server。
注意事項
- 命名管道效能在高延遲網路(跨網段、VPN)較 TCP/IP 差,建議僅用於區域網路。
- SQL Server 2005+ 預設僅啟用 Shared Memory 與 TCP/IP,命名管道需手動啟用。
- 防火牆需開放 TCP 445 (SMB) 與 RPC 動態埠範圍。