Можно ли использовать связанные серверы при использовании NTLM?

У меня нет доступа к настройкам Active Directory и нет доступа к изменениям на связанном сервере.

Из всего, что я прочитал, кажется, что это означает, что я не могу использовать Kerberos - что является большой проблемой, потому что я не знаю, как использовать связанный сервер без него.

Есть ли способ подключиться к связанному серверу без Kerberos? (или какой-нибудь способ включить Kerberos без администратора в AD?)


Точное описание проблемы

Когда я подключаюсь к связанному серверу , сидя перед моим сервером, он работает нормально; но когда я пытаюсь подключиться к связанному серверу с любого другого компьютера (делегирование через мой сервер), выдает ошибку:

Не удалось войти в систему для пользователя 'NT AUTHORITY\ANONYMOUS LOGON'. (Microsoft SQL Server, ошибка: 18456)

Похоже, что это " проблема двойного перехода", и обычное решение - включить Kerberos, который требует доступа к AD и связанному серверу.

Я получаю ту же ошибку, когда задаю для параметра безопасности "Сделать с использованием текущего контекста безопасности входа в систему", и не могу использовать "Сделать с использованием этого контекста безопасности", поскольку, как представляется, используется проверка подлинности SQL (которая не включена в связанный сервер) вместо NTLM

4 ответа

Решение

Это действительно случай ограниченного делегирования (т. Е. "Двойной прыжок"). Нет настроек, которые можно изменить, чтобы это работало. Если бы он существовал, он по определению был бы ошибкой, поскольку это нарушило бы политику домена, ограничивающую делегирование только доверенным учетным записям. Поэтому, если вы не измените AD, чтобы пометить SQL Server "посередине" как доверенный для делегирования, вам не удастся выполнить двойной переход. И любая другая работа, которую я бы вам дал, позволила бы вам нарушить ваши доменные политики. Поскольку кажется, что вы понимаете техническую проблему, я бы порекомендовал вам постучаться в правильные двери: хозяева вашего домена и / или заинтересованные стороны ваших требований.

Вы можете использовать sp_addlinkedsrvlogin для сопоставления имени входа Windows на хосте SQL Server с именем входа SQL на удаленном сервере. Это не работает для групп Windows.

В диалоговом окне связанного сервера в разделе "Безопасность" выбрано ли "Сделать с использованием текущего контекста безопасности входа"?

Установлена ​​ли ваша учетная запись Windows на сервере, к которому вы пытаетесь подключиться?

Чтобы использовать связанный сервер без Kerberos, единственной опцией является SQL Logins. если это не вариант, вы должны попытаться исправить аутентификацию Kerberos.

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

если у вас есть доступ к любому серверу Windows 2008 в домене с пользователем домена, вы должны выполнить эту команду CMD, чтобы проверить, что уже зарегистрировано (доступ на чтение разрешен).

setspn -l [sqlservicedomainaccount]

Вы должны проверить для setspn -l sqlmachinename и посмотреть, если он зарегистрирован, и sqlserviceaccount. Поскольку в этих реестрах не должно быть дублированных элементов, сначала необходимо удалить, а затем зарегистрировать новый.

Затем попросите кого-нибудь в сети зарегистрировать эти spn (поскольку сервис необходимо перезапустить после регистрации, вы должны сделать это только во временном окне)

Другие вопросы по тегам