SQL Server 2012 не может подключиться к именованному экземпляру удаленно с помощью ssms - PullRequest
0 голосов
/ 24 ноября 2018

Я использую SQL Server 2012 на Microsoft Windows Server 2012 R2.Я запускаю именованный экземпляр с именем PP.Аутентификация сервера установлена ​​на «SQL Server и режим аутентификации Windows».

Когда я захожу на сервер через удаленный рабочий стол, я могу нормально входить в именованный экземпляр через SSMS, используя имя пользователя и пароль SQL Server.Когда я пытаюсь войти в именованный экземпляр удаленно, используя то же имя пользователя и пароль, я получаю сообщение об ошибке, как описано на этом снимке экрана (моя репутация недостаточно высока, чтобы вставить снимок экрана непосредственно в мое сообщение, перейдите по ссылке):

screenshot of error message

Вот что я проверил до сих пор:

  1. Я могу пропинговать IP-адрес удаленного сервера с локального компьютера и получать успешные ответы.
  2. Я настроил экземпляр SQL Server для приема удаленных подключений, как описано в этой статье .
  3. В диспетчере конфигурации SQL Server на удаленном сервере по протоколам дляВ моем именованном экземпляре я включил «Общая память», «Именованные каналы» и «TCP / IP».
  4. В свойствах «TCP / IP» на удаленном сервере в диспетчере конфигурации SQL Server в «IP-адресах»На вкладке «IP2» я установил пустое значение «Динамические порты TCP».Я попытался установить значение «Порт TCP» на 1433, а затем на 1434 (разница между обычным экземпляром и именованным экземпляром) и пройти оставшиеся шаги, как показано на скриншоте здесь (это значения, указанные в статье, на которую я ссылался выше)
  5. Брандмауэр Windows не работает на удаленном сервере, и, как я вижу, на удаленном сервере также не работает другой брандмауэр.
  6. Служба браузера SQL Server на удаленном сервере была остановлена ​​и перезапущена.
  7. После того, как я внес все эти изменения и проверил все эти параметры, служба SQL Server для именованного экземпляра на удаленном серверебыл остановлен и перезапущен.

После всего этого я по-прежнему получаю исходную ошибку при попытке подключиться к именованному экземпляру SQL Server на удаленном сервере с локального компьютера через SSMS.Я искал высоко и низко и не могу найти никаких дополнительных шагов по устранению неполадок, чтобы диагностировать эту проблему.Кто-нибудь, пожалуйста, укажет мне направление дальнейших шагов, которые я должен предпринять, чтобы это исправить?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Я вышел из системы, а затем вернулся на следующий день, чтобы реализовать предложения, содержащиеся в ответе Андрея Николова, и по какой-то причине теперь я могу удаленно подключиться к указанному экземпляру.Параметры, которые в итоге работали для раздела «IP2» конфигурации «TCP / IP» для именованного экземпляра, представляют собой значение «Динамические порты TCP», значение которого пустое, а параметр «Порт TCP» - 1433. Я не сделалне делайте никаких других изменений.Остальная часть конфигурации, как я отметил в моем OPУ меня есть доступ сисадмина к этому серверу, но я не являюсь настоящим администратором, поэтому я полагаю, что настоящий администратор мог изменить что-то другое между тем, как я вышел из системы, а затем снова вошел, но я не знаю, что это может быть.Спасибо @Andrey Nikolov за ваш вклад.

РЕДАКТИРОВАТЬ: Эта проблема вернулась в полную силу через несколько дней без причины, которую я мог определить.После долгих поисков я нашел очень информативный MS Doc, в котором подробно рассматривается весь процесс устранения неполадок, надеюсь, это поможет кому-то еще столкнуться с этим.Вот ссылка:

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/troubleshoot-connecting-to-the-sql-server-database-engine?view=sql-server-2017

Это говорит о том, что это для SQL Server 2017, но я смог пройти по нему, чтобы исправить мою проблему с SQL Server 2012.В моей ситуации получается, что, поскольку на моем сервере было 2 отдельных экземпляра MS SQL, начальный экземпляр использовал все настройки по умолчанию, как описано в другом месте, а мой экземпляр, к которому я пытался подключиться, использовал совершенно другой порт.Используя этот документ, я смог выяснить, какой порт использует мой экземпляр, и указать его в поле «Имя сервера» SSMS при попытке подключения.Теперь это работает как шарм.

0 голосов
/ 24 ноября 2018

Я думаю, что ваш именованный экземпляр TCP / IP не настроен должным образом.Если вы подключаетесь локально, он подключается не по протоколу TCP / IP, а через общую память.Вы устанавливаете свой экземпляр на прослушивание порта 1434, но этот порт используется службой браузера SQL, и, скорее всего, службе ядра SQL Server не удается открыть порт (это можно проверить, найдя ошибку в журналах).Чтобы это работало, вы должны установить IP2 -> TCP Dynamic Ports равным 0 и очистить IP2 -> TCP Port.При такой настройке ваш именованный экземпляр будет использовать динамические порты.Если вы хотите настроить его на использование определенного порта, замените 1434 в IP2 -> TCP-порт на доступно номер порта.

...