适用于:SQL Server - 仅限 Windows
别名是可用于进行连接的备用名称。 别名封装了连接字符串所必需的元素,并使用用户所选择的名称显示这些元素。 若要创建此计算机上的 Microsoft SQL Server 客户端的别名,请在控制台窗格中右键单击“别名”,然后选择“新建别名”。 若要配置此计算机上的 SQL Server 客户端的现有别名,请在控制台窗格中选择“别名”,在详细信息窗格中右键单击所需的现有别名,然后选择“属性”。
注意
SQL Server 的别名是在客户端配置的一部分。 每个使用别名的客户端计算机都必须具有相同的别名配置,SQL Server 配置管理器并不是唯一可用于创建或管理别名的工具。
SQL Server 2022 及更高版本不支持使用 SQL Server 配置管理器创建别名。 若要为 SQL Server 2022 及更高版本创建别名,请使用 SQL Server 客户端网络实用工具。
何时使用别名
默认情况下,SQL Server 使用“共享内存”协议连接到 SQL Server 的本地实例,使用“TCP/IP”或“命名管道”连接到其他计算机上的 SQL Server 实例。 请在以下情况下创建别名:使用 TCP/IP 或命名管道,并且希望提供自定义连接字符串时;希望使用服务器名称之外的其他名称进行连接时。
示例
SQL Server 不会侦听默认 TCP/IP 端口 1433,因此你希望提供一个包含另一端口号的连接字符串。
SQL Server 不会侦听默认命名管道,因此你希望提供一个包含不同管道名称的连接字符串。
希望将应用程序连接到名为
ACCT的服务器上的数据库,但该数据库已合并为名为ACCT的服务器上的CENTRAL实例。 该应用程序不能轻易更改。 创建一个别名ACCT,其中包含指向CENTRAL\ACCT的连接字符串。
别名属性
别名
用于引用此连接的名称(别名)。
管道名称或端口号
连接字符串的其他元素。 此框的名称随所选协议的不同而变化。
协议
连接所用的协议。
服务器
连接到的 Microsoft SQL Server 实例的名称。
共享内存连接
从运行在同一台计算机上的客户端到 SQL Server 的连接使用共享内存和命名管道协议。 共享内存没有可配置的属性。 始终会先尝试使用共享内存,无法将其从“客户端协议属性”列表中“启用的协议”列表的顶部位置移动。 可以禁用共享内存协议,在排除其他某个协议的故障时,这样做很有用。
不能使用共享内存协议来创建别名,但是如果启用了共享内存,然后通过名称连接到数据库引擎,就可以创建共享内存连接。 共享内存连接字符串的格式为 lpc:<servername>[\instancename]。
使用共享内存连接到本地服务器
当连接到与客户端运行在同一台计算机上的 SQL Server 时,可以使用 (local) 作为服务器名称。 由于上述方法不明确,因此不建议使用此值,但是当客户端运行在已知的计算机上时,该方法还是有用的。 例如,当为断开连接的移动用户(其中,SQL Server 将运行在笔记本电脑上并存储相应的项目数据)创建应用程序时,连接到 (local) 的客户端就可以始终与运行在笔记本电脑上的 SQL Server 保持连接。 可以使用词语 localhost 或句点 (.) 来取代 (local)。
共享内存连接示例
如果已启用共享内存协议,下列名称将使用该协议连接到本地计算机:
<servername><servername>\<instancename>(local)localhost
不能为共享内存连接创建别名。
注意
根据服务器的配置,在“服务器”框中指定 IP 地址将促成命名管道或 TCP/IP 连接。
TCP/IP 连接
若要使用 TCP/IP 别名连接到 SQL Server,必须:
指定“别名”。
在“服务器”框中,输入可以使用 ping 实用工具连接到的服务器名称或可以使用 ping 实用工具连接到的 IP 地址。 对于命名实例,请追加实例名称。
在“协议”框中指定“TCP/IP”。
在 “端口号”框中输入端口号(可选)。 默认端口号为
1433,这是服务器上默认的数据库引擎实例的端口号。 若要连接到命名实例或未侦听端口 1433 的默认实例,则必须提供端口号,或者启动 SQL Server Browser 服务。 有关配置 SQL Server Browser 服务的信息,请参阅 SQL Server Browser 服务(数据库引擎和 SSAS)。
连接时,SQL Server Native Client 组件将从指定别名的注册表中读取服务器、协议和端口的值,然后创建一个格式为 tcp:<servername>[\<instancename>],<port> 或 tcp:<IPAddress>[\<instancename>],<port> 的连接字符串。
注意
默认情况下,Windows 防火墙会关闭端口 1433。 由于 SQL Serve 通过端口 1433 进行通信,因此,如果你将 SQL Server 配置为使用 TCP/IP 侦听传入客户端连接,则必须重新打开该端口。 有关配置防火墙的信息,请参阅 SQL Server 联机丛书中的“如何将防火墙配置为允许 SQL Server 访问”,或者查阅防火墙文档。
SQL Server 和 SQL Server Native Client 完全支持 Internet 协议版本 4 (IPv4) 和 Internet 协议版本 6 (IPv6)。 SQL Server 配置管理器接受 IPv4 和 IPv6 格式的 IP 地址。
TCP/IP 别名设置示例
按服务器名称进行连接
别名:<serveralias>
端口号:<blank>
协议:TCP/IP
服务器:<servername>
按服务器名称连接到命名实例
别名:<serveralias>
端口号:<blank>
协议:TCP/IP
服务器:<servername>\<instancename>
按服务器名称连接到指定的端口
别名:<serveralias>
端口号:<port number>
协议:TCP/IP
服务器:<servername>
按 IP 地址进行连接
别名:<serveralias>
端口号:<blank>
协议:TCP/IP
服务器:<IPAddress>
命名管道连接
默认的 Microsoft SQL Server 实例侦听命名管道协议时,除非用户进行了更改,否则将使用 \\.\pipe\sql\query 作为管道名称。 句点表示该计算机是本地计算机。
pipe 表示该连接是命名管道,sql\query 是管道名称。 若要连接到默认管道,别名必须使用 \\<computer_name>\pipe\sql\query 作为管道名称。 如果已将 SQL Server 配置为侦听其他管道,则管道名称必须使用该管道。 例如,如果 SQL Server 使用 \\.\pipe\unit\app 作为管道,则别名必须使用 \\<computer_name>\pipe\unit\app 作为管道名称。
若要使用别名通过命名管道连接到 SQL Server,必须:
指定“别名”。
选择“命名管道”作为“协议”
输入管道名称。 或者,将“管道名称”留空,在你指定了“协议”和“服务器”后,SQL Server 配置管理器将会填入适当的管道名称。
指定一个服务器。 对于命名实例,可以提供服务器名称和实例名称。
连接时,SQL Server Native Client 组件将从指定别名的注册表中读取服务器、协议和管道名称的值,然后采用格式 np:\\<computer_name>\pipe\<pipename> 或 np:\\<IPAddress>\pipe\<pipename> 创建一个管道名称。 对于命名实例,默认管道名称为 \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query。
注意
默认情况下,Microsoft Windows 防火墙会关闭端口 445。 由于 Microsoft SQL Serve 通过端口 445 进行通信,因此,如果你将 SQL Server 配置为使用命名管道侦听传入客户端连接,则必须重新打开该端口。
命名管道别名设置示例
按服务器名称连接到默认管道
别名:<serveralias>
管道名称:<blank>
协议:Named Pipes
服务器:<servername>
按 IP 地址连接到默认管道
别名:<serveralias>
管道名称:<blank>
协议:Named Pipes
服务器:<IPAddress>
按服务器名称连接到非默认管道
别名:<serveralias>
管道名称:\\<servername>\pipe\unit\app
协议:Named Pipes
服务器:<servername>
按服务器名称连接到命名实例
别名:<serveralias>
管道名称:\\<servername>\pipe\MSSQL$<instancename>\SQL\query
协议:Named Pipes
服务器:<servername>
验证连接协议
以下查询将返回当前连接所使用的协议。
SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;