Драйвер JTDS не работает для Sql Server 2008R2 и не загружена собственная библиотека SSPI Denali. Проверьте системное свойство java.library.path - PullRequest
8 голосов
/ 15 июня 2011

Я пытаюсь подключиться к базе данных Sql Server, используя проверку подлинности Windows из моего приложения, используя драйвер JTDS, но я получил следующую ошибку

SSO Failed: Собственная библиотека SSPI отсутствует загружен. Проверьте java.library.path системное свойство.

Ниже приведены сценарии, в которых я пытался решить, но все еще что-то не хватает ..

  1. Я добавил ntlmauth.dll в системный каталог, и он отлично работает для Sql server 2005.
  2. Но то же самое, что я пробовал для Sql Server 2008 R2 и Denali, но это дает мне ту же ошибку, что я упоминал выше
  3. Также я рассмотрел бит, я имею в виду, я скопировал ntlmauth.dll из x64 \ SSO \ path в системный каталог.

Я запутался, почему это не работает для Sql Server 2008 R2 и Denali.

Ответы [ 3 ]

14 голосов
/ 06 января 2012

Попробуйте, поместив файл ntlmauth.dll в папку bin вашей среды выполнения Java (например, C:\Program Files\Java\jre7\bin).

Убедитесь, что соответствует битности (32-битная или 64-битная)DLL с разрядностью JVM.

Я столкнулся с той же проблемой при использовании SQL Server Express 2008 R2, и в этой статье форума MSDN по SQL Server было рекомендовано это разрешение, которое мне помогло.

4 голосов
/ 28 июня 2013

Помимо непосредственного помещения его в JRE, вы также можете просто указать java.library.path следующим образом:

-Djava.library.path=C:\jtds-1.3.1-dist\x64\SSO

Указанный выше каталог будет содержать файл ntlmauth.dll

0 голосов
/ 10 ноября 2016

В дополнение к ответу ДеКриста мне пришлось добавить тот же файл dll в папку bin C:\Program Files\Java\jdk1.8.0_91\jre\bin.В этом случае это сработало для меня.

...