9

我正在尝试使用 Windows 身份验证从我的应用程序使用 JTDS 驱动程序连接 Sql Server 数据库,但出现以下错误

SSO 失败:未加载本机 SSPI 库。检查 java.library.path 系统属性。

以下是我试图解决但仍然缺少某些内容的场景。

  1. 我在系统目录中添加了 ntlmauth.dll,它适用于 Sql server 2005。
  2. 但是我为 Sql Server 2008 R2 和 Denali 尝试过同样的事情,但它给了我与上面提到的相同的错误
  3. 我也考虑了一下,我的意思是我从系统目录中的 x64\SSO\ 路径复制了 ntlmauth.dll。

我很困惑为什么这不适用于 Sql Server 2008 R2 和 Denali。

4

3 回答 3

15

尝试将ntlmauth.dll文件放在binJava 运行时环境的文件夹中(例如C:\Program Files\Java\jre7\bin)。

确保将 DLL 的“位数”(32 位或 64 位)与 JVM 位数相匹配。

我使用 SQL Server Express 2008 R2 遇到了同样的问题,这篇MSDN SQL Server 论坛文章推荐了这个对我有用的解决方案。

于 2012-01-06T14:07:27.873 回答
4

除了直接将其放入您的 JRE 之外,您还可以java.library.path这样指定:

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

上面的目录将包含该ntlmauth.dll文件

于 2013-06-28T12:00:14.043 回答
0

除了 DeChrist 的响应之外,我还必须在 also.dll 的文件bin夹中添加相同的 dll 文件C:\Program Files\Java\jdk1.8.0_91\jre\bin。在那种情况下,它对我有用。

于 2016-11-10T18:05:17.973 回答