默认客户端连接行为
在客户端计算机上安装了 SQL Server Native Client 之后,客户端马上便可连接到数据库引擎实例。大多数情况下,SQL Server 客户端不需要任何特殊的配置便可连接到数据库引擎实例。客户端应用程序必须提供的唯一信息是计算机名称和实例名。如果服务器中没有运行 SQL Server Browser 服务,则必须提供一个连接端点(TCP/IP 端口或命名管道)以连接到命名实例。
注意 |
---|
默认情况下不会启用服务器网络协议。有关详细信息,请参阅如何启用或禁用服务器网络协议(SQL Server 配置管理器)。 |
在本地进行服务器连接
从本地客户端(客户端应用程序和 SQL Server 位于同一台计算机上)连接到数据库引擎时,该连接将默认使用 Shared Memory 协议。SQL Server Native Client 接受下列任一格式来使用共享内存协议进行本地连接:
“<computer_name>”
“<computer_name>\<instance_name>”(对于命名实例)
“(local)”
“(local)\<instance_name>”(对于命名实例)
“Localhost”
“localhost\<instance_name>”(对于命名实例)
一个句点“.”
“.\<instance_name>”(对于命名实例)
若要使用其他协议进行本地连接(用于故障排除),请启用该协议并执行下列操作之一:
连接到指定协议的客户端别名。有关详细信息,请参阅 SQL Server 配置管理器帮助中的“别名”。
使用协议作为计算机名称的前缀(例如,“np:<computer_name>”或“tcp:<computer_name>”)。
连接到将建立 TCP/IP 连接的 IP 地址。
连接到将建立 TCP/IP 连接的完全限定域名 (FQDN)(例如,“<computer_name>.<domain_name>.com”)
验证连接协议
以下查询将返回当前连接所使用的协议。
SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
通过网络进行连接
默认情况下,SQL Server 客户端的默认协议为 TCP/IP。如果无法使用 TCP/IP 建立连接,则请尝试使用其他已启用的协议。无法通过网络进行共享内存连接。使用 SQL Server 配置管理器可以启用或禁用客户端协议,也可以更改连接尝试的顺序。
与 SQL Server 早期版本的兼容性
默认 SQL Server 实例与 SQL Server 的早期版本(包括 Microsoft SQL Server 2000 和 Microsoft SQL Server 7.0)侦听相同的网络地址。使用早期版本的客户端连接组件的应用程序可以继续连接至默认实例,而无需进行任何更改。SQL Server 的命名实例侦听动态端口。必须设置使用早期版本的客户端连接组件的客户端计算机才能连接到这些地址。有关详细信息,请参阅如何创建供客户端使用的服务器别名(SQL Server 配置管理器)。
如果已安装了 SQL Server Native Client 或 Microsoft 数据访问组件 (MDAC) 客户端,则将保留协议设置。对于全新安装,将在客户端上启用除 VIA 外的所有协议,并按照以下协议顺序逐一尝试使用:Shared Memory、TCP、Named Pipes。
重要提示 |
---|
不推荐使用 VIA 协议。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 |
若要连接到命名实例,MDAC 客户端必须至少升级到 MDAC 2.6。
注意 |
---|
为了增强安全性,对于 Developer Edition、Evaluation Edition 和 SQL Server Express Edition 的全新安装,SQL Server 将禁用与 SQL Server 的 TCP/IP 连接。使用 MDAC 2.8 连接的 OLEDB 应用程序无法连接到使用“.”、“(local)”或 (<blank>) 作为服务器名称的本地服务器中的默认实例。若要解决此问题,请提供服务器名称或在服务器上启用 TCP/IP。与本地命名实例的连接将不受影响,使用 SQL Server Native Client 的连接也不受影响。存在以前安装的 SQL Server 的安装可能不受影响。 |