9

I am trying to connect Sql Server Data Base using windows authentication from my application using JTDS driver but i got following error

SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

Following are the scenarios where i tried to resolve but still something is missing..

  1. i have added ntlmauth.dll in system directory and it works fine for Sql server 2005.
  2. But the same thing i tried for Sql Server 2008 R2 and Denali but it gives me the same error as i mentioned above
  3. Also i considered bit i mean i copied ntlmauth.dll from x64\SSO\ path in system directory.

I an confused why this is not working for Sql Server 2008 R2 and Denali.

Cœur
  • 37,241
  • 25
  • 195
  • 267
Access Denied
  • 886
  • 1
  • 13
  • 24

3 Answers3

15

Try by placing the ntlmauth.dll file in the bin folder of your Java Runtime Environment (e.g. C:\Program Files\Java\jre7\bin).

Be sure to match the "bitness" (32 bit or 64 bit) of the DLL with the JVM bitness.

I ran into the same issue using SQL Server Express 2008 R2 and this MSDN SQL Server Forum Article recommended this resolution, which worked for me.

DeChrist
  • 530
  • 4
  • 11
  • One easy thing to miss is if there is a mismatch between the word size of the JVM and the library. So if you are running a 32-bit Java and have a 64-bit DLL, then it will not load. – Anders Zommarin Apr 18 '16 at 18:06
4

Apart from putting it into your JRE directly, you can also just specify the java.library.path as such:

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

The above directory would then contain the ntlmauth.dll file

Lukas Eder
  • 211,314
  • 129
  • 689
  • 1,509
0

In addition to DeChrist's response, I had to add the same dll file in the bin folder of C:\Program Files\Java\jdk1.8.0_91\jre\bin also. In that case, it worked for me.