我一直在尝试使用最新版本的Oracle SQL Developer(4.0.2)来使用Windows身份验证连接到Microsoft SQL Server。我已经从jtds-1.3.1-dist下载并复制了ntmlauth.dll(以及JtdsXA.dll)文件到我能想到的每个位置,开发人员会寻找它,但当我尝试通过jts-1.3.1-dist设置新的连接时SQLServer选项卡单击"使用Windows身份验证"选项,我得到的只是消息"状态:失败-I / O错误:SSO失败:未加载本机SSPI库。检查java.library.path系统属性。"但是我可以使用Toad for SQL Server或SSMS连接到数据库而没有任何问题,但是如果可能的话,我更愿意使用SQL Developer。
答案 0 :(得分:5)
只需将..\jtds-1.3.1-dist\x64\SSO\ntlmauth.dll
复制到 - > x64系统的..\sqldeveloper\jdk\jre\bin
文件夹。复制粘贴x86系统的类似文件夹内容。
答案 1 :(得分:3)
我遇到了完全相同的问题。我最终通过将ntlmauth.dll
放在jdk\jre\bin
目录下的sql-developer
文件夹中来实现它。出于某种原因,sql-developer附带了自己的jdk,我通过浏览找到了它。我花了几个小时试图弄清楚为什么上述DLL在各种系统级jre目录(即C:\Program Files\Java\jre7\bin
)中的位置不起作用。
如果此处的任何人都知道为什么在ntlmauth.dll
文件夹中sql-developer\jdk\jre\bin
的放置工作,而系统级jre文件夹中的放置不符合我的兴趣。
我的操作系统= Windows 2007 64位
jtds = jtds-1.2.7
答案 2 :(得分:1)
原因很简单; SQLDEVELOPER不了解已安装的系统级jre。 Oracle使用和不使用JAVA捆绑SQLDEVELOPER。如果你下载了没有java的那个,那么当你第一次启动应用程序时,系统会提示你输入java_home的位置。如果您安装已安装java的SQLDEVELOPER版本,那么它只是工作 - 没有提示。在您的情况下,您安装了已随应用程序打包的java版本。
因此问题的根源是SQLDEVELOPER(在您的特定安装中)不使用系统级jre,因此您从未使用过放在该目录中的ntlmauth.dll。
答案 3 :(得分:0)