Есть ли способ указать SPN при использовании LinqPad для подключения к MSSQL - PullRequest
1 голос
/ 30 апреля 2020

Мы работаем с SQL Сервером, использующим аутентификацию Windows, и обнаружили, что нам нужно указать имя участника-службы для работы соединения. Наше приложение частично использует соединение VB6 через файлы UDL и частично серию сценариев ad ho c, которые мы запускаем через LinqPad. Используя функцию Server SPN файла UDL, мы можем заставить соединение работать, но не можем найти эквивалент для LinqPad.

Кто-нибудь знает, как заставить это работать? Мы опробовали ServerSPN = в качестве дополнительного параметра строки подключения в расширенных настройках, но он не распознается.

Дополнительные сведения.

  • Клиентские приложения находятся на Windows 7 в домене A. Все клиентские подключения выполняются с учетных записей в домене A.
  • Сервер sql находится в домене B .
  • Существует выборочное одностороннее доверие между доменами, и сервер добавляется в группу, которая активирует это доверие.
  • Ошибка соединения linqpad: «Имя целевого субъекта Неправильно. Невозможно сгенерировать контекст SSPI ".
  • Файл UDL позволяет подключению работать, если для него установлено значение SPN = Server, но в противном случае возникает та же ошибка.

Обновление: во время В ходе тестирования мы обнаружили, что указание SPN приводит к аутентификации NTLM на сервере. Поэтому, если есть способ навязать это клиенту, это был бы возможный маршрут для нас.

Обновление + Обходной путь: мы наткнулись на обходной путь, добавление сервера в файл хоста с другим именем, по-видимому, вызывает тот же откат к аутентификации NTLM, чтобы работать для соединения LinqPad. Был бы признателен, если бы кто-нибудь понимал, как это исправить правильно, но сейчас мы используем обходной путь hostfile.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 01 мая 2020

Я могу подумать о нескольких возможных проблемах здесь:

  • Ваше одностороннее доверие настроено неправильно;
  • Это слишком избирательно;
  • Несовместимость версий AD между доменами.

Я бы порекомендовал попробовать Kerberos Configuration Manager для SQL Сервер , он может дать вам некоторое представление о причине root.

Кроме того, я полагаю, что у вас больше шансов спросить об этом на ServerFault, а не здесь. Судя по всему, это проблема неправильной конфигурации, и она не имеет ничего общего с программированием.

...