2016-06-15 4 views
7

Я хочу иметь возможность подключиться к SQL Server с помощью проверки подлинности jdbc и windows. я видел некоторые ответы в Интернете, говоря я хотел бы добавить следующее свойство в строке соединения:Подключиться к SQL Server с проверкой подлинности Windows с Linux-машины через JDBC

integratedSecurity=true; 

, а также добавить

sqljdbc_auth.dll 

На пути Java.

Но это, насколько я понимаю, применяется только тогда, когда я подключаюсь к машине под Windows. Когда я попробовать это на машине Linux я получаю:

java.sql.SQLException: This driver is not configured for integrated authentication 

Мой вопрос, как я могу это сделать из машины Linux.

Благодаря

+0

«длл» намек, что это, вероятно, библиотека окна. В Linux у вас, вероятно, есть «.so» или что-то другое, кроме «dll». – Fildor

+0

@ Fildor я знаю, вот почему я спросил, как это сделать из linux. – zuckermanori

+0

@mjn я читал эту статью, но это относится к Windows, а не к Linux, как я спросил – zuckermanori

ответ

14

Ну, в конце концов, я ответил на мой собственный вопрос: Это не представляется возможным использовать проверку подлинности Windows из Linux машины с помощью драйвера Microsoft JDBC. Это возможно с помощью драйвера JDBC jTDS, используя следующую строку соединения:

jdbc:jtds:sqlserver://host:port;databaseName=dbname;domain=domainName;useNTLMv2=true; 

Спасибо всем за все комментарии

+1

Я пытаюсь реализовать то же самое. Я могу подключиться к SqlServer, используя jtDs и проверку подлинности Windows с Unix-машины, но запросы на вставку не работают. Запрашивая вас, пожалуйста, взгляните на [это] (http://stackoverflow.com/questions/39658960/exception-while-using-jtds-for-sqlserver-connectivity) Вопрос о переполнении стека – Sumit

+0

Это работает, спасибо – sendon1982

+0

вы проверяете данные пользователя в этой строке? Мне нужно встроить все в URL-адрес соединения. – Pradatta

1

TL; DR

Это не представляется возможным использовать нативный проверку подлинности Windows для подключения JDBC к MSSQL из JVM работает на Linux.


В этой статье MSDN объясняет методы Аутентификации с JDBC на Linux, возможные ошибки и возможные варианты:

https://blogs.msdn.microsoft.com/psssql/2015/01/09/jdbc-this-driver-is-not-configured-for-integrated-authentication/

... в драйвере в JDBC 4.0, вы можете использовать свойство connectionScheme , чтобы указать, как вы хотите использовать Kerberos для соединения . Здесь есть две настройки.

  • NativeAuthentication (по умолчанию) - При этом используется sqljdbc_auth.dll и специфичные для платформы Windows. Это был единственный вариант перед драйвером JDBC 4.0.

  • JavaKerberos - Использует API Java для вызова kerberos и не полагается на платформу Windows. Это спецификация java, а не , связанная с базовой операционной системой, поэтому ее можно использовать как на платформах Windows и Linux, так и на .

...

Следующий документ описывает, как использовать Kerberos с JDBC Driver и идет через то, что нужно, чтобы получить JavaKerberos рабочих правильно.

Использование Kerberos встроенной проверки подлинности для подключения к SQL Server http://msdn.microsoft.com/en-us/library/gg558122%28v=sql.110%29.aspx

+0

Я также прочитал эту статью. Я все еще не понимаю, могу ли я использовать флаг JavaKerberos для аутентификации с помощью проверки подлинности Windows. – zuckermanori

+0

@zuckermanori Для аутентификации Kerberos требуется сервер Kerberos. Это другой стандарт, чем обычная проверка подлинности Windows. Поэтому сначала вам нужно обратиться к своему системному/сетевому администратору, если Kerberos доступен для вашей среды. – mjn

+0

Я знаю, что все по-другому, я ищу способ использовать проверку подлинности Windows, а не кеберосы. Спасибо, в любом случае. – zuckermanori

Смежные вопросы