使用命名管道创建有效的连接字符串

默认的 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 Configuration Manager 会在指定协议服务器后完成相应的管道名称

  • 指定一个服务器。 对于命名实例,可以提供服务器名称和实例名称。

连接时,SQL Server Native Client 组件从注册表中读取指定别名的服务器、协议和管道名称值,并创建采用格式 np:\\<computer_name>\pipe\<pipename>np:\\<IPAddress>\pipe\<pipename>管道名称的管道名称。对于命名实例,默认管道名称为 \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query

注释

默认情况下,Microsoft Windows 防火墙会关闭端口 445。 由于 MicrosoftSQL Server 通过端口 445 进行通信,因此如果 SQL Server 配置为使用命名管道侦听传入客户端连接,则必须重新打开端口。 有关配置防火墙的信息,请参阅 SQL Server 联机丛书中的“如何将防火墙配置为允许 SQL Server 访问”,或者查阅防火墙文档。

连接到本地服务器

当连接到与客户端在同一台计算机上运行的 SQL Server 时,可以使用 (local) 作为服务器名称。 不建议使用 (local) ,因为它会导致歧义;但是,当已知客户端在预期计算机上运行时,它很有用。 例如,为移动断开连接的用户(例如销售人员)创建应用程序时,SQL Server 将在笔记本电脑上运行并存储项目数据,连接到(本地)的客户端将始终连接到在笔记本电脑上运行的 SQL Server。 单词 localhost 或句点(.)可用于代替 (local)

验证连接协议

以下查询将返回用于当前连接的协议。

SELECT net_transport   
FROM sys.dm_exec_connections   
WHERE session_id = @@SPID;  
  

例子

按服务器名称连接到默认管道:

Alias Name         <serveralias>  
Pipe Name          <blank>  
Protocol           Named Pipes  
Server             <servername>  
  

通过 IP 地址连接到默认管道:

Alias Name         <serveralias>  
Pipe Name          <leave blank>  
Protocol           Named Pipes  
Server             <IPAddress>  
  

按服务器名称连接到非默认管道:

Alias Name         <serveralias>  
Pipe Name          \\<servername>\pipe\unit\app  
Protocol           Named Pipes  
Server             <servername>  
  

通过服务器名称连接到已命名的实例:

Alias Name         <serveralias>  
Pipe Name          \\<servername>\pipe\MSSQL$<instancename>\SQL\query  
Protocol           Named Pipes  
Server             <servername>  
  

使用 localhost连接到本地计算机:

Alias Name         <serveralias>  
Pipe Name          <blank>  
Protocol           Named Pipes  
Server             localhost  
  

使用句点连接到本地计算机:

Alias Name         <serveralias>  
Pipe Name          <left blank>  
Protocol           Named Pipes  
Server             .  
  

注释

若要将网络协议指定为 sqlcmd 参数,请参阅 SQL Server 联机丛书中的“如何:使用 sqlcmd.exe连接到数据库引擎”。

另请参阅

使用 Shared Memory 协议创建有效的连接字符串
使用 TCP IP 创建有效的连接字符串
选择网络协议