Создание допустимой строки соединения, использующей протокол именованных каналов

Когда экземпляр по умолчанию MicrosoftSQL 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 считывает значения сервера, протокола и имени канала из реестра для заданного имени псевдонима и создает имя канала в формате np:\\<computer_name>\pipe\<pipename> или np:\\<IPAddress>\pipe\<pipename>.Для именованного экземпляра канал по умолчанию имеет имя \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query.

ПримечаниеПримечание

Microsoft Windows XP с пакетом обновления 2 (SP2) включает брандмауэр Windows, который по умолчанию закрывает порт 445. Так как MicrosoftSQL Server осуществляет связь через порт 445, необходимо повторно открыть порт, если SQL Server настроен на прослушивание клиентских соединений при помощи именованных каналов. Сведения о настройке брандмауэра см. в разделе «Как настроить брандмауэр для приложения SQL Server Access» в электронной документации по SQL Server или в документации используемого брандмауэра.

Подключение к локальному серверу

При подключении к SQL Server, выполняющемуся на том же компьютере, что и клиент, в качестве имени сервера можно использовать (local). Применение (local) не рекомендуется, поскольку может вызвать неоднозначность, но может быть полезным, если известно, что клиент запущен на нужном компьютере. Например, при создании приложения для мобильных отключенных пользователей, таких как торговый персонал, когда SQL Server будет запускаться на переносных компьютерах и использоваться для хранения данных проекта, клиент, подключающийся к (local), будет всегда подключаться к 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 см. в разделе «Как соединиться с компонентом Database Engine при помощи программы sqlcmd.exe» электронной документации по SQL Server.