Как установить метод аутентификации SQL Server в DataGrip?

Есть ли способ указать метод аутентификации (SQL Server или Windows Authentication) при подключении к SQL Server с помощью DataGrip?

Я пытался настроить как драйверы SQL Server (jTDS), так и драйверы SQL Server (Microsoft), но не вижу ни одной опции.


person bigtunacan    schedule 04.01.2016    source источник


Ответы (2)


С драйвером jTDS:

Это зависит от настроек подключения / источника данных.

то есть, чтобы настроить соединение для проверки подлинности Windows:

  1. На вкладке «Общие» укажите свое имя пользователя Windows / AD в поле Пользователь.
  2. на вкладке «Дополнительно» в свойстве DOMAIN укажите домен для учетной записи Windows, которую вы указали на шаге 1.
  3. Вам может потребоваться установить USENTLMV2 = true, если в вашей сети не включена проверка подлинности Kerberos.

Если вы не укажете домен на шаге 2, предполагается, что вы выполняете попытку входа в систему с проверкой подлинности SQL Server.

С драйвером Microsoft:

Я не мог заставить это работать в OS X, но у большинства людей, похоже, нет проблем с Windows.

  1. На вкладке «Дополнительно» для источника данных установите для IntegratedSecurity значение true.

n.b. возможно, вам также придется установить это свойство для фактического драйвера, в OS X я постоянно получал «Этот драйвер не настроен для встроенной аутентификации», но это могло быть что-то в OS X.

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

person pwae    schedule 07.01.2016
comment
У меня был такой же опыт - работает с драйвером jTDS, но не с драйвером Microsoft. - person Mark Meuer; 09.02.2016
comment
К сожалению, 2016.1.1 не имеет свойства DOMAIN на вкладке Advanced. Пытался добавить один через свойство, определяемое пользователем, но не удалось подключиться с Mac - person rams; 26.05.2016
comment
Привет, @rams, я только что обновился до версии 2016.1.1 и все еще вижу свойство DOMAIN для драйвера jTDS. он находится в конце списка. - person pwae; 29.05.2016
comment
@pwae Моя ошибка. Я использовал не тот драйвер. С jTDS я вижу вариант ДОМЕН. Это недоступно с драйвером SQL Server. - person rams; 30.05.2016
comment
Я не понимаю, как это связано с OSX, когда он отлично подключается через другие программы, такие как SQLPro для MSSQL. Это проблема DataGrip, а не OSX. - person swade; 07.06.2016
comment
@StevenWade SQLPro для MSSQL (который у меня тоже есть) использует FreeTDS, на чем основан драйвер jTDS. Отмеченные проблемы с OS X - это всего лишь драйвер Microsoft. - person pwae; 24.07.2016
comment
Я добавляю PyCharm в этот комментарий, чтобы упростить задачу для тех, кто не понимает, что DataGrip - это, по сути, то, что PyCharm использует для более легкого поиска этого решения. - person hlongmore; 02.10.2018

Мне удалось подключиться к MacOS в Intellij 2018.2 с помощью драйвера jdbc Microsoft 7.0.0 SQL Server.

(Во-первых, я предполагаю, что у вас работает Kerberos. Чтобы проверить это, запустите:

klist | grep krbtgt

Если у вас есть билет Kerberos, вы должны увидеть:

Aug 29 12:17:34 2018  Aug 29 22:17:34 2018  krbtgt/[email protected]

Я использовал эту статью на Подключение с использованием режима проверки подлинности ActiveDirectoryIntegrated для устранения этой проблемы. Обратите внимание, что мне не пришлось выполнять «Шаг 2: Настройка KDC в krb5.conf». )

Убедитесь, что драйвер jdbc настроен на использование интегрированная безопасность и Java Kerberos.

Изображение вкладки Advanced в источниках данных проекта

Изображение вкладки Advanced в источниках данных проекта, на которой показана схема аутентификации

Затем на вкладке «Общие» не забудьте изменить раскрывающееся меню рядом с URL-адресом на «Только URL-адрес» и введите URL-адрес в форме:

jdbc:sqlserver://databaseserver.domain.company.com;database=testdatabase;integratedSecurity=true;authenticationScheme=JavaKerberos;encrypt=true;trustServerCertificate=true;

Изображение вкладки "Общие" в источниках данных проекта

Если вы оставите раскрывающийся список рядом с URL-адресом на «по умолчанию», он попытается использовать имя пользователя / пароль, а это не то, что вам нужно, если вы используете встроенную аутентификацию. Кроме того, убедитесь, что вы знаете, что делаете, если оставите "trustServerCertificate = true;" в URL. В производственной среде вы должны правильно настроить свои сертификаты, но это выходит за рамки того, о чем здесь спрашивают.

person mushusker    schedule 29.08.2018