别名(SQL Server 配置管理器)

适用于 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的连接字符串。

别名属性

别名

用于引用此连接的名称(别名)。

管道名称或端口号

连接字符串的其他元素。 此框的名称随所选协议的不同而变化。

协议

连接所用的协议。

Server

连接到的 Microsoft SQL Server 实例的名称。

共享内存连接

从运行在同一台计算机上的客户端到 SQL Server 的连接会使用共享内存和命名管道协议。 共享内存没有可配置的属性。 始终会先尝试使用共享内存,无法将其从“客户端协议属性”列表中“启用的协议”列表的顶部位置移开。 可以禁用 shared memory 协议,在排除其他某个协议的故障时,这样做很有用。

不能使用共享内存协议来创建别名,但是如果启用了共享内存,然后要通过名称连接到数据库引擎,可以创建共享内存连接。 共享内存连接字符串的格式为 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 服务

连接时,SQL Server Native Client 组件将从指定别名的注册表中读取服务器、协议和端口的值,然后创建一个格式为 tcp:<servername>[\<instancename>],<port>tcp:<IPAddress>[\<instancename>],<port> 的连接字符串。

注意

默认情况下, Windows 防火墙关闭端口 1433。 由于 SQL Serverr 通过端口 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>

注意

若要了解如何将网络协议指定为“sqlcmd”参数的信息,请参阅 sqlcmd - 连接到数据库引擎

命名管道连接

除非用户更改,否则当 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;

网络协议和网络库