Периодические сбои соединения ODBC - PullRequest
0 голосов
/ 25 сентября 2018

Мы разрабатываем собственное 32-битное приложение.Приложение подключается к SQL Server.Средой тестирования является SQL Server 2008 R2, а действующей средой является SQL Server 2014 с пакетом обновления 2 (SP2).

Соединение с базой данных выполняется с использованием этой строки ODBC:

Driver={SQL Server};Server=<redacted>;Database=<redacted>;Trusted_Connection=Yes;

Пользователи этой базы данныхпринадлежат к группе безопасности «локальный домен».В эту группу входят пользователи из трех разных доменов AD.Группа определяется как логин для SQL Server и пользователь для целевой базы данных.В тестовой среде это работало нормально.

В реальной среде только некоторые пользователи могут успешно подключаться к базе данных.Интересно, что пользователи, которые находятся в группе безопасности, но НЕ находятся в одном домене с сервером, могут подключатьсяПользователи в том же домене, что и сервер, не могут.(Я проверил не всех 25 пользователей, но это шаблон, который я вижу).У пользователей (таких как я) с правами sysadmin на сервер базы данных нет проблем.

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

Любое понимание приветствуется.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Спасибо Birel за то, что указал мне правильное направление.Ответ состоял в том, что на новом сервере 2014 года служба обозревателя SQL Server не работала.Я установил его на автоматический запуск и запустил.Это решило проблему.

0 голосов
/ 25 сентября 2018

У меня было много проблем с этим в прошлом, и сработало следующее:

  1. Перейдите к Пуску |Microsoft SQL Server 2014 |Диспетчер конфигурации SQL Server 2014.

Разверните Конфигурация сети SQL Server, затем щелкните экземпляр 2008 года.Сделав это, справа вы увидите общую память, именованные каналы и TCP / IP.Откройте Named Pipes и включите его, если он отключен.Откройте TCP / IP и включите его, но в TCP / IP вы также заметите дополнительную вкладку под названием IP-адреса.Нажмите на эту вкладку и активируйте каждый IP-адрес отдельно для всех IP-адресов (или только для тех, которые вы хотите активировать).Вы также заметите, что существует порт TCP, для которого порт SQL по умолчанию - 1433. Однако, когда на одном компьютере установлено более одного экземпляра SQL, я обычно делю номера портов.т.е. один экземпляр, я установил на 1433, а второй, я установил на 1435. Смотрите скриншот ниже:

enter image description here

Обратите внимание, что я удалил ноль вдинамические порты TCP.

Когда вы дойдете до конца, установите его следующим образом:

enter image description here

Когда вы закончите настройкувсе это, нажмите Apply, OK, а затем OK.

Перейдите к Пуску |Выполните.

Введите Cliconfg (это необходимо сделать на каждом компьютере, на котором возникают проблемы с подключением), затем нажмите кнопку ОК.

Включите именованные каналы и TCP / IP, затемотметьте опцию Включить протокол совместно используемой памяти, как показано ниже:

enter image description here

Нажмите «Применить», а затем «ОК».

Перейдите в Start Run, введите services.msc, затем нажмите OK.

Перейдите к обоим экземплярам SQL Server и перезапустите их.

Также откройте браузер SQL Server,измените его с «Отключено» на «Автоматически», затем введите имя пользователя и пароль AD.

Нажмите «Применить» и «ОК», затем запустите браузер.

Если после этого у вас все еще остаются проблемы с подключением, попробуйте отключитьБрандмауэр Windows или добавление исключений портов, как упоминалось ранее в ответе.

Если у вас все еще есть проблемы, ответьте на этот ответ, и я помогу вам в дальнейшем ...

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...