ssms не может подключиться к экземпляру сервера sql по умолчанию без указания номера порта - PullRequest
3 голосов
/ 30 апреля 2010

У меня есть несколько экземпляров SQL Server 2005 на коробке. С SSMS на моем рабочем столе я могу без проблем подключиться к именованным экземплярам этого ящика. После некоторых недавних изменений конфигурации сети, когда я хочу подключиться к экземпляру по умолчанию из SSMS на моем рабочем столе, я должен указать номер порта. Перед изменением сети я не должен был указать номер порта экземпляра по умолчанию.

Если я удаленно подключусь к любому другому блоку (включая рассматриваемый), и использую SSMS этого блока для подключения к этому экземпляру по умолчанию, успех. С моего рабочего стола и только с моего рабочего стола я должен указать номер порта.

Это конфигурация SQL Server, которую я пропустил? Возможно ли, что-то в конфигурации моего компьютера мешает? Куда бы я посмотрел, или что я мог бы передать сетевым людям, чтобы помочь им решить эту проблему? Любая помощь приветствуется.

Ответы [ 2 ]

4 голосов
/ 30 апреля 2010

Порт 1434 заблокирован где-то вдоль линии, которая используется для преобразования имени экземпляра в номер порта.

Если указать номер порта, имя экземпляра игнорируется ...

Служба браузера SQL Server прослушивает порт 1434

После запуска Браузер SQL Server запускается и запрашивает порт UDP 1434 . SQL Браузер сервера читает реестр, идентифицирует все экземпляры SQL Server на компьютере и отмечает порты и именованные каналы, которые они используют. Когда сервер имеет две или более сетевых карт, Браузер SQL Server возвращает первый включенный порт для SQL Сервер. Поддержка браузера SQL Server [sic] ipv6 и ipv4.

Когда клиенты SQL Server запрашивают SQL Ресурсы сервера, клиентская сеть библиотека отправляет UDP-сообщение сервер, использующий порт 1434. SQL Server Браузер отвечает с портом TCP / IP или именованная труба запрошенного пример. Сетевая библиотека на клиентское приложение затем завершает подключение, отправив запрос на сервер, использующий порт или именованный канал желаемый экземпляр.

Редактировать, после комментария:

Какая настройка по умолчанию для локального клиента? Конечно, это должно быть 1433, но если нет, то только имя сервера не будет работать.

Запустите «Диспетчер конфигурации SQL Server» .. «Конфигурация собственного клиента SQL» .. «Протоколы клиента» .. Дважды щелкните tcp / ip, там будет использоваться порт по умолчанию, используемый вашим локальным ПК.

0 голосов
/ 03 мая 2010

Я видел это на Windows 2008/7 / Vista, на которых включен брандмауэр. Использование именованного экземпляра не работает, но указание порта работает. Для меня исправлением было установить правила брандмауэра для SSMS и DTExec, чтобы обеспечить нормальные соединения. Сценарий для этого приведен ниже, но вам, возможно, придется изменить патч на SSMS и DTExec.

rem SSMS
netsh advfirewall firewall add rule name=SQL-SSMS dir=in action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" enable=yes profile=domain
netsh advfirewall firewall add rule name=SQL-SSMS dir=out action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" enable=yes profile=domain

rem DTExec
netsh advfirewall firewall add rule name=SQL-DTExec dir=in action=allow program="D:\Apps\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain
netsh advfirewall firewall add rule name=SQL-DTExec dir=out action=allow program="D:\Apps\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain

rem DTExec32
netsh advfirewall firewall add rule name=SQL-DTExec32 dir=in action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain
netsh advfirewall firewall add rule name=SQL-DTExec32 dir=out action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain
...