Вход в Microsoft SQL Server с использованием учетных данных Active Directory

13

Наши серверы Microsoft SQL работают на серверах Windows, которые являются частью домена Active Directory.

Для облегчения управления пользователями наша авторизация SQL настраивается с использованием групп пользователей Active Directory, как описано в этом посте .

Теперь это работает нормально, пока все работают внутри домена. Люди входят в свой компьютер, используя свои учетные данные AD, и могут подключаться к серверу SQL с помощью «Аутентификации Windows».

Проблема заключается в том, что наши пользователи также будут работать на других клиентских компьютерах, которые не являются частью домена Active Directory (и добавить их в домен нельзя).

Я надеялся, что они могут просто продолжать использовать свои учетные данные AD для входа на сервер, используя аутентификацию AD, как упоминалось на экране входа в SQL Server.

Экран входа в SQL Server

Однако это не похоже на работу.

Вход в систему с помощью аутентификации по паролю Acive Directory приводит к проблемам с сертификатом. Ошибка: «Цепочка сертификатов была выдана не доверенным органом».

Cannot connect to x.x.x.x.

===================================

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) (.Net SqlClient Data Provider)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2146893019&LinkId=20476 (page does not exist)

Как ни странно, если я захожу в настройки «Параметры» в окне входа в систему и отмечаю флажок «Сертификат доверенного сервера». Я внезапно НЕ могу подключиться к серверу и просто получаю сообщение об ошибке.

Cannot connect to x.x.x.x.

===================================

Login failed for user ''. (.Net SqlClient Data Provider)

Возможна ли установка, которую я хочу достичь? И если так, как я могу достичь этого? :)

Напомним, что SQL-серверы работают в домене AD, пользователи имеют учетные данные AD, но им также нужно иметь возможность входить с клиентских компьютеров, а не в часть домена AD со своими учетными данными AD.

Жиль Лезире
источник
Откройте C:\WINDOWS\system32\cliconfg.exeи проверьте, включено ли принудительное шифрование протокола. Если он отключен
Drifter104
Нет, это не включено.
Жиль Лезире
2
Интересная проблема. Это кажется действительным: runas /netonly /user:domain\username "c:\path\ssms.exe" mssqltips.com/sqlservertip/3250/…
Михал Соколовский

Ответы:

10

Сообщение об ошибке заключается в том, что сертификаты были выданы ненадежным органом. Это был бы ваш домен AD, скорее всего.

Пару обходных путей, которые вы можете попробовать:

  1. В этом посте dba.stackexchange.com предлагается нажать кнопку параметров в окне подключения выше и добавить его в TrustServerCertificate=Trueразделе «Дополнительные параметры подключения». Это в основном говорит SSMS, что да, вы знаете, просто сделайте это.
  2. Если это не сработает, этот пост dba.stackexchange.com предлагает использовать runas для обмана Windows. Например, runas /netonly /user:domain\username "C:\path_to\ssms.exe"я никогда не делал этого с SSMS, но стоит попробовать, так как OP, кажется, находится в схожей с вами ситуации (и я верю, что парень отвечает).

В любом случае, надеюсь, что один из этих обходных путей поможет вам.

Кэтрин Вилляр
источник
1
Первое решение не сработало, оно уже было затронуто в моем вопросе. Второе решение, похоже, работает, хотя при входе в него все еще говорится, что мое имя Windows рядом с соединением, нужно провести несколько тестов, если это действительно учетная запись домена и работает ли он должным образом, как и ожидалось. Скрещенные пальцы.
Жиль Лезире
Если работает runas, есть ли способ избежать командной строки? Не все наши пользователи разбираются в технологиях.
Жиль Лезире
3
Может быть, вы могли бы создать собственный ярлык? Я на самом деле только что проверил это сам, добавив runas /netonly /user:domain\username в начало строки скопированного ярлыка. Это работало хорошо, хотя также выскочило командную строку для ввода их учетных данных.
Кэтрин Вилльярд
Или использовать Sysinternals ShellRunas
Ноам
1

Самый простой способ - просто щелкнуть правой кнопкой мыши «Microsoft SQL Server Management Studio» - «еще» и выбрать «Запуск от имени другого пользователя». Это сработало для меня. Я думал, что если я выберу «Active Directory - пароль» на экране входа в систему, это будет делать ту же работу, но ... к сожалению, это не так.

Петр V
источник