SQL Server 支持多种网络协议用于客户端与数据库引擎之间的通信

SQL Server 支持多种网络协议用于客户端与数据库引擎之间的通信。最常见的 3 种数据库连接协议(也称为网络协议或通信协议)如下:


1. TCP/IP(Transmission Control Protocol/Internet Protocol)

  • 最常用、推荐的协议,尤其适用于远程连接和跨网络通信。
  • 使用固定的端口(默认是 1433),也可以配置为动态端口或多 IP 监听。
  • 支持 IPv4 和 IPv6。
  • 在防火墙环境中易于配置(只需开放对应端口)。
  • 适用场景:局域网、广域网、互联网连接、应用程序服务器与数据库分离部署。

✅ 优点 :稳定、高效、广泛支持。

⚠️ 注意 :需确保 SQL Server 已启用 TCP/IP 协议(通过 SQL Server 配置管理器 启用)。


2. Named Pipes(命名管道)

  • 基于 Windows 的进程间通信(IPC)机制,使用文件系统路径风格的管道名(如 \\.\pipe\sql\query)。
  • 通常用于 本地或局域网内 的快速通信,尤其在早期 Windows 环境中较常见。
  • 依赖于 SMB(Server Message Block)协议,因此在网络延迟高或跨防火墙时性能较差。
  • 默认在本地连接(如 localhost 或 .)时可能优先使用 Named Pipes。

✅ 优点 :在低延迟局域网中性能良好。

❌ 缺点:跨网络或互联网支持差,安全性较低,现代应用中逐渐被 TCP/IP 取代。


3. Shared Memory(共享内存)

  • 仅限本地连接:当客户端与 SQL Server 实例运行在同一台机器上时使用。
  • 是最快、最高效的协议,因为不经过网络堆栈。
  • 无法用于远程连接。
  • 当连接字符串中使用 (local)、localhost、. 或 127.0.0.1 且未指定协议时,SQL Server 客户端驱动程序会优先尝试 Shared Memory。

✅ 优点 :零网络开销,速度极快。

❌ 限制:只能用于本机连接。


补充说明:

  • SQL Server 客户端(如 .NET 的 SqlClient)会按 协议顺序 自动尝试连接(可通过 SQL Server Client Network Utility 或注册表配置顺序)。
  • 默认协议尝试顺序通常是:Shared Memory → TCP/IP → Named Pipes。
  • VIA(Virtual Interface Adapter) 曾是第四种协议,但微软已在 SQL Server 2012 之后弃用并移除,不再推荐使用。

如何查看/配置协议?

  • 使用 SQL Server 配置管理器(SQL Server Configuration Manager) :
    • 启用/禁用服务器端的协议(SQL Server Network Configuration → Protocols for <实例名>)
    • 配置客户端协议(SQL Native Client Configuration → Client Protocols)

总结对比:

协议 是否支持远程 默认启用 典型用途
Shared Memory ❌ 仅本地 ✅ 本机调试、本地工具连接
TCP/IP ✅ ✅ 大多数生产环境、远程连接
Named Pipes ✅(局域网) ⚠️ 视版本 旧系统、Windows 内网环境

💡 最佳实践 :生产环境中建议 启用 TCP/IP 并禁用 Named Pipes 和 Shared Memory(除非需要),以简化安全管理和提升可维护性。

相关推荐
XM_jhxx7 小时前
简会AI图纸识别系统功能上新:模板、公差、量具个性化配置上线!
数据库·人工智能·软件工程
java资料站7 小时前
十、向量数据库
数据库
Ivanqhz8 小时前
干涉图着色
java·服务器·网络·数据库·人工智能·深度学习
꯭自꯭闭꯭8 小时前
达梦DMDSC主备搭建
linux·服务器·数据库
用户EasyAdminBlazor8 小时前
EasyAdminBlazor 审批并发控制:两个人同时审批为什么只能成功一个?
数据库
杨云龙UP9 小时前
TDengine Community 超级表建表实战:统一21个TAG与DOUBLE/字符串数据模板
运维·服务器·数据库·时序数据库·tdengine·涛思数据·stable建表
katasea9 小时前
第05章:信创技术栈选型:服务器、操作系统、数据库、中间件适配对比
服务器·数据库·中间件
梓沂9 小时前
记一次 Oracle 测试库自动刷新脚本的踩坑实录
数据库·oracle
2501_931803759 小时前
MySQL 索引核心原理
数据库·mysql
浪潮IT馆10 小时前
Windows 10 安装 PostgreSQL 9.6.24 完整教程
数据库·windows·postgresql