| 協定 | 適用範圍 | 效能/開銷 | 防火牆/連接埠 | 建議 |
|---|---|---|---|---|
| Shared Memory | 本機連線 | 最低延遲、零網路開銷 | 無需開啟連接埠 | 預設啟用,本機應用首選 |
| TCP/IP | 區域/廣域網路、跨子網 | 標準、成熟、可路由 | TCP 1433 (預設)、Browser UDP 1434 | 生產環境主要協定,必須啟用 |
| Named Pipes | 區域網路、舊版應用相容 | 較高開銷、需 SMB (445) | TCP 445、RPC 動態埠 | 非必要請停用,減少攻擊面 |
| VIA (Virtual Interface Adapter) | 特定硬體 (SAN/叢集) | 極低延遲、用戶模式處理 | 需專用硬體、驅動程式 | 無 VIA 硬體請停用 |
MyAppDB → tcp:ProdServer,1433),應用程式無需修改連線字串。SQL Server 2008 將連線接聽器抽象為端點,每個端點綁定特定協定與連接埠。
TSQL Default TCP:接聽 TCP 1433 (預設執行個體) 或動態埠 (具名執行個體)。TSQL Default VIA、TSQL Named Pipes、TSQL Local Machine (Shared Memory)。Dedicated Admin Connection (DAC):專用管理連線,接聽 TCP 1434 (預設執行個體) 或動態埠,僅允許單一 sysadmin 連線。EXEC sp_configure 'remote admin connections', 1; RECONFIGURE;,方便緊急救援。GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO [LoginName]; 控制誰可用哪個協定連線。-- 檢視端點
SELECT name, protocol_desc, type_desc, state_desc, port
FROM sys.tcp_endpoints
UNION ALL
SELECT name, protocol_desc, type_desc, state_desc, NULL
FROM sys.endpoints
WHERE protocol_desc <> 'TCP';
-- 檢視連線協定
SELECT session_id, net_transport, protocol_type, client_net_address, local_net_address
FROM sys.dm_exec_connections;