При использовании SSMS, например, для подключения к SQL Server, я бы указывал имя сервера, к которому требуется подключиться, а также метод аутентификации, в данном случае, аутентификации Windows. Если SQL Server работал на порте, отличном от 1433 по умолчанию, я добавил бы запятую и номер порта после имени сервера.
Недавно мы получили новый сервер, и я могу подключиться к нему без указания номера порта, поэтому я предположил, что номер порта, на котором он работал, был 1433. Тем не менее, я замечаю, что когда я запускаю следующий запрос (я являюсь администратором на коробке, но не администратор базы данных), он показывает мне порт, отличный от 1433.
выберите @@ имя_сервера иди ОБЪЯВИТЬ @portNumber NVARCHAR(10)
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
,@key = 'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
,@value_name = 'TcpDynamicPorts'
,@value = @portNumber OUTPUT
SELECT
[Port Number] = @portNumber
GO
Допустим, запрос возвращает номер порта 2121. Когда я соединяюсь с номером порта 2121, я также успешно соединяюсь.
В: Если я не укажу номер порта, не должна ли попытка завершиться неудачей, поскольку попытка по умолчанию должна быть 1433?
Я пытаюсь выяснить, почему наши оффшорные люди не имеют доступа из-за того, что порты не открываются. Должен ли я также запросить открытие 1433 или просто номер poprt, возвращенный вышеупомянутым SQL?