Используйте среду SQL Server Management Studio для удаленного подключения к экземпляру SQL Server Express, размещенному на виртуальной машине Azure


Первая Попытка

У меня есть виртуальная машина Azure с Windows Server 2012, на которой я только что установил компонент SQL Server 2012 Express Database Engine. Затем я последовал инструкциям здесь для удаленного подключения к среде SQL Server Management Studio.

  1. создать конечную точку TCP для виртуальной машины
  2. откройте TCP-порты в Брандмауэре Windows
  3. настройка SQL Server для прослушивания протокола TCP
  4. настройка SQL Server для проверки подлинности в смешанном режиме
  5. создать учетные записи проверки подлинности SQL Server
  6. определите DNS-имя виртуальной машины
  7. подключение к компоненту Database Engine с другого компьютера

после седьмого шага я получил следующую ошибку:

произошла ошибка, связанная с сетью или экземпляром установка соединения с SQL Server. Сервер не найден или был недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: по имени Поставщик труб, ошибка: 40-не удалось открыть соединение с SQL Server) (Microsoft SQL Server, ошибка: 53)

что еще мне нужно настроить перед подключением удаленно?

устранение неисправностей

я следовал инструкциям по устранению неполадок здесь. Каждая цитата ниже шаг описал, что эта ссылка.

подтвердите установку экземпляра компонента SQL Server Database Engine и работает.

сделано. Мы установили SQL Server Express, и он работает как именованный экземпляр с именем SQLEXPRESS.

Если вы пытаетесь подключиться к именованному экземпляру, убедитесь, что Запущена служба обозревателя SQL Server.

сделано. Мы пошли по ступенькам здесь включить Служба браузера SQL Server.

получить IP-адрес компьютера.

сделано. Мы будем использовать их позже для тестирования подключения и, возможно, для настройки статического порта для SQLEXPRESS.

10.241.62.155

fe80:: 45c:8c29:e19f:f78b%15

получить номер порта TCP, используемый SQL Server.

сделано. Элемент среда SQL Server Management Studio логи сервера показали, что сервер был прослушивание через порт 49169.

Включить Протоколы

сделано. Мы уже включили TCP / IP в configuration manager, но на всякий случай перезапустили службу SQL Server.

тестирование подключения TCP / IP

сделано. Мы использовали tcping.exe для проверки подключения (cmd ping не работает быстро с Azure.) Мы смогли подключиться к порту 80.

  • tcping.исполняемый buddha.cloudapp.net > успешных
  • tcping.exe buddha.cloudapp.net 80 > успешно

тестирование локального соединения

сделано. Мы использовали sqlcmd.exe из командной строки и возможность подключения через TCP с именем пользователя и паролем.

  • sqlcmd-S Buddha\SQLEXPRESS (успех через протокол общей памяти)
  • sqlcmd-s tcp: Buddha\SQLEXPRESS (успех через ПТС)
  • sqlcmd-s tcp: Buddha\SQLEXPRESS-U sa-P (успех через TCP с именем пользователя)
  • sqlcmd-s tcp:10.241.62.155\SQLEXPRESS-U sa-P (успех с внутренним IP)

открытие порта в Брандмауэре

мы открыли порт, на котором мы sqlexpress слушает. Журналы сервера (выше) показали, что SQLEXPRESS прослушивает порт 49169, но это всего лишь один из многих динамических портов, и мы хотели настроить статический порт 1435.

  • использовать WF.МСЦ создать правило для входящих подключений по протоколу TCP на порт 1435.
  • используйте портал управления Azure для создания конечной точки TCP для порта 1435.

инструкции по устранению неполадок и сказать:

Если вы подключаетесь к именованный экземпляр или порт, отличный от TCP порт 1433, вы также должны открыть UDP-порт 1434 для SQL Server Служба обозревателя.

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

  • использовать WF.msc для создания входящего UCP правило для порта 1434.
  • используйте портал управления Azure для создания UDP конечная точка для порта 1434

дальнейшие исследования по подключению к именованным экземплярам выявили проблемы с динамическим портом. Причина, по которой мы используем порт 1435 (статический) вместо порта 49169 (один из многих эффективных опции.)

экземпляры SQL Server Express, SQL Server Compact и named экземпляры компонента Database Engine используют динамические порты. Чтобы настроить их экземпляры для использования определенного порта см. В разделе настройка сервера для прослушивания определенный TCP-порт (диспетчер конфигурации SQL Server). и здесь.

сделано. Мы пошли в SQL Configuration Manager > конфигурация сети SQL Server > протоколы для SQLEXPRESS > TCP/ IP, мы сделать следующее.

вкладка протокол > слушать все > нет.

вкладка IP-адреса > для каждого указанного адреса

  • Включено > Да
  • TCP динамические порты > пустой (удалить ноль)
  • TCP порт > 1435 (или ваш выбор)

после перезапуска службы SQLEXPRESS мы снова заглянули в журналы SQL Server Management Studio и обнаружили, что сервер прослушивает порт 1435!!! Ура!

проверка связи

сделано. Мы открыли SQL Server Management Studio на нашем локальном (не Azure) компьютере и подключились.

  • buddha.cloudapp.net,1435 или buddha. cloudapp. net\SQLEXPRESS
  • sa
  • пароль

успехов.

3   51   2013-04-11 22:46:12

3 ответа:

вот три веб-страницы, на которых мы нашли ответ. Самой сложной частью была настройка статических портов для SQLEXPRESS.

подготовка виртуальной машины SQL Server в Windows Azure. Эти первоначальные инструкции дали 25% ответа.

как устранить неполадки при подключении к SQL Server Database Engine. Внимательно прочитав это, вы получите еще 50% ответа.

как настроить SQL server слушать на разных портах по разным IP адресам?. Это позволило настроить статические порты для именованных экземпляров (например, SQLEXPRESS.) Это заняло у нас последние 25% пути к ответу.

тот факт, что вы получаете сообщение об ошибке от поставщика каналов имен, говорит нам, что вы не используете протокол TCP/IP при попытке установить соединение. Попробуйте добавить префикс " tcp " и указать номер порта:

tcp:name.cloudapp.net,1433

Я тоже боролся с чем-то подобным. Я предполагаю, что ваша реальная проблема заключается в подключении к экземпляру SQL Express, работающему на другой машине. Шаги для этого можно резюмировать следующим образом:

  1. убедитесь, что SQL Express настроен для проверки подлинности SQL, а также проверки подлинности Windows (по умолчанию). Это можно сделать с помощью свойств сервера SQL Server Management Studio (SSMS) / Security
  2. в SSMS создайте новый логин под названием "sqlUser", скажем, с подходящим пароль, "sql", скажем. Убедитесь, что это новое имя Входа настроено для проверки подлинности SQL, а не для проверки подлинности Windows. SSMS Server Security / Logins / Properties / General. Также убедитесь, что флажок" применить политику паролей " снят
  3. В разделе свойства / роли сервера убедитесь, что у этого нового пользователя есть роль "sysadmin"
  4. В SQL Server Configuration Manager SSCM (поиск SQLServerManagerxx.msc-файл в Windows\SysWOW64, если вы не можете найти SSCM) в разделе Конфигурация сети SQL Server / протоколы для SQLExpress убедитесь, что TCP/IP включен. Вы можете отключить именованные каналы, если хотите
  5. щелкните правой кнопкой мыши протокол TCP / IP и на вкладке IPAddresses убедитесь, что каждый из IP-адресов имеет значение Enabled Yes и TCP-порт 1433 (это порт по умолчанию для SQL Server)
  6. в Брандмауэре Windows (WF.msc) создайте два новых входящих правила - одно для SQL Server и другое для службы SQL Browser. Для SQL Server необходимо открыть TCP-порт 1433 (если вы используете порт по умолчанию для SQL Server) и что очень важно для службы браузера SQL вам нужно открыть UDP порт 1434. Назовите эти два правила соответствующим образом в вашем брандмауэре
  7. Остановите и перезапустите службу SQL Server с помощью SSCM или служб.оснастка МСЦ
  8. в сервис.оснастка msc убедитесь, что Тип запуска службы SQL Browser является автоматическим, а затем запустите эту службу

на этом этапе вы должны быть в состоянии подключиться удаленно, используя аутентификацию SQL, пользователь " sqlUser" пароль " sql " для экземпляра SQL Express, настроенного как указано выше. Окончательный совет и простой способ проверить это-создать пустой текстовый файл с расширением .Расширение UDL, скажем " тест.UDL " на вашем рабочем столе. Двойной щелчок для редактирования этого файла вызывает диалоговое окно Свойства канала передачи данных Microsoft, с помощью которого можно быстро проверить удаленное соединение SQL