Доступ к SQL Server в Windows Server 2008 R2 с удаленного клиента - PullRequest
7 голосов
/ 19 апреля 2011

В настоящее время мы переходим от использования PostgreSQL, установленного на удаленных блоках CentOS, к использованию MS SQL Server 2008 R2, установленного на удаленных блоках Windows Server 2008 R2.

Наше веб-приложение, использующее эту базу данных, установлено и работает на другом компьютере CentOS, где он останется.

Все эти поля предоставляются сторонним хостинг-провайдером и находятся в одной доменной сети.

Поэтому наша разработка удалена от домена сервера / базы данных, так как наши машины разработки являются удаленными. В прошлом открытия VPN было достаточно, чтобы позволить нашим экземплярам разработки нашего веб-приложения, работающим локально на наших ПК, удаленно подключаться к базе данных PostgreSQL, работающей на коробке CentOS.

Однако теперь у нас возникли проблемы с тем же самым с Windows Server 2008 R2. Даже при открытой VPN любая попытка подключиться (или даже пропинговать) к удаленному серверу истекает.

Наш код для подключения к экземпляру базы данных на новом сервере базы данных правильный, так как когда мы загружаем этот код в блок приложения CentOS и запускаем его, он подключается нормально, так как код теперь выполняется на блоке в тот же физический домен, что и в Windows Server 2008 R2. Однако нам нужно установить соединение с удаленными компьютерами.

Имеет ли это смысл? Есть ли какие-то настройки брандмауэра Windows, которые нам нужно изменить, чтобы разрешить удаленные подключения? Как я уже сказал, мы не можем даже пропинговать новую машину Windows Server 2008 R2 с удаленных компьютеров.

Ответы [ 6 ]

8 голосов
/ 28 августа 2012

Вот краткое изложение того, что мне помогло установить удаленные соединения. Я не эксперт в этом, поэтому некоторые из моих шагов могут не понадобиться. Я сделал некоторые шаги из других ответов на этот вопрос.

  • Открыть диспетчер конфигурации SQL Server
  • Выберите конфигурацию сети SQL Server
  • Выберите свой экземпляр SQL Server
  • Убедитесь, что протокол TCP / IP включен
  • Щелкните правой кнопкой мыши протокол TCP / IP
  • Выберите свойства
  • Нажмите вкладку IP-адреса
  • Прокрутите вниз до IP4. IP-адрес сервера должен быть здесь. Активировать на да и включить на да. Установите для порта TCP значение 1433 (не знаю, нужно ли это. Может, некоторые комментарии экспертов)
  • Прокрутите вниз до IPAll. Установите порт TCP на 1433
  • Создание правила входящего брандмауэра для порта 1433
  • Откройте SQL Server Server Studio, щелкните правой кнопкой мыши экземпляр сервера, выберите Свойства-> Подключения-> Разрешить удаленные подключения. Безопасность-> Режим аутентификации SQL Server и Windows
  • перезапустить службу sql server
  • перезапустить браузер сервера sql

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

7 голосов
/ 20 апреля 2011

Выполните следующие действия:

  1. Откройте SQL Server Configuration Manager
  2. Выберите SQL Server Network Configuration
  3. Выберите свой экземпляр SQL Server
  4. Создатьубедитесь, что протокол TCP / IP включен
  5. Перезапустите сервер, если он был выключен

Примите во внимание следующее:

  • Аутентификациярежим (Windows / SQL Server / смешанный)
    • Полномочия пользователей Windows
  • Имя сервера в строке подключения
    • \(взаимная физическая сеть)
    • tcp:\(разные физические сети)
1 голос
/ 04 сентября 2012

Я понимаю, что это старый пост, но еще одна вещь, которую нужно проверить, это убедиться, что вы включили определенный IP-адрес и порт на вкладке IP-адрес конфигурации сети SQL Server, это в дополнение к другим постам , См. ССЫЛКА для получения дополнительной информации

1 голос
/ 02 июня 2011

В сочетании с советами из других ответов и помощью нашего хостинг-провайдера нам удалось разобраться в этом. В основном это была проблема блокировки этих портов нашим провайдером.

1 голос
/ 19 апреля 2011

Убедитесь, что вы разблокировали порт 1433, который используется для SQL Server.Если ваш экземпляр имеет имя, вам нужно настроить порт для этого экземпляра в диспетчере конфигурации, а затем разблокировать этот порт в брандмауэре.

0 голосов
/ 08 августа 2016

Если после настройки Ip и других проблем проблема остается,

проверьте дату и время вашего клиентского ПК.

должно быть так же, как сервер

[я недавно решил с этой техникой]

существует проблема в сервере sql, если клиентский компьютер не синхронизирован с сервером. Клиент времени не подключается к серверу.

...