Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Oracle SQL Developer与Microsoft SQL Server的连接_Sql Server_Oracle Sqldeveloper - Fatal编程技术网

Sql server Oracle SQL Developer与Microsoft SQL Server的连接

Sql server Oracle SQL Developer与Microsoft SQL Server的连接,sql-server,oracle-sqldeveloper,Sql Server,Oracle Sqldeveloper,我一直在尝试使用Windows身份验证将最新版本的Oracle SQL Developer(4.0.2)连接到Microsoft SQL server,但没有成功。我已经从jtds-1.3.1-dist下载并复制了ntmlauth.dll(以及JtdsXA.dll)文件,并将其复制到我能想到的每个开发人员可能正在寻找的位置,但当我尝试通过SQLServer选项卡单击“使用Windows身份验证”选项建立新连接时,我得到的只是消息“状态:失败-I/O错误:SSO失败:未加载本机SSPI库。检查ja

我一直在尝试使用Windows身份验证将最新版本的Oracle SQL Developer(4.0.2)连接到Microsoft SQL server,但没有成功。我已经从jtds-1.3.1-dist下载并复制了ntmlauth.dll(以及JtdsXA.dll)文件,并将其复制到我能想到的每个开发人员可能正在寻找的位置,但当我尝试通过SQLServer选项卡单击“使用Windows身份验证”选项建立新连接时,我得到的只是消息“状态:失败-I/O错误:SSO失败:未加载本机SSPI库。检查java.library.path系统属性。“不过,我可以使用Toad for SQL Server或SSMS连接到数据库,而不会出现任何问题,但如果可能,我更愿意使用SQL Developer。

我遇到了完全相同的问题。通过将
ntlmauth.dll
放在
sqldeveloper
目录下的
jdk\jre\bin
文件夹中,我最终实现了它。出于某种原因,SQLDeveloper附带了自己的jdk,我通过浏览找到了它。我花了几个小时试图弄明白为什么在各种系统级jre目录(即
C:\Program Files\Java\jre7\bin
)中放置上述DLL不起作用

如果这里有人知道为什么将
ntlmauth.dll
放在
sqldeveloper\jdk\jre\bin
文件夹中有效,而放在系统级jre文件夹中无效,我会感兴趣

My OS=Windows 2007 64位


jtds=jtds-1.2.7

原因很简单;SQLDEVELOPER不知道安装的系统级jre。Oracle将SQLDEVELOPER与JAVA捆绑在一起,也与JAVA捆绑在一起。如果您下载了一个没有java的应用程序,那么当您第一次启动应用程序时,系统会提示您输入java_主页的位置。如果您安装了已经安装了java的SQLDEVELOPER版本,那么它就可以正常工作——没有提示。在您的情况下,您安装的java版本已经随应用程序打包


因此,问题的根源是SQLDEVELOPER(在您的特定安装中)不使用系统级jre,因此您放置在该目录中的ntlmauth.dll永远不会被使用。

只需复制
。\jtds-1.3.1-dist\x64\SSO\ntlmauth.dll
到->
。\SQLDEVELOPER\jdk\jre\bin
x64系统的文件夹。复制并粘贴x86系统的类似文件夹内容。

将jTDS驱动程序(jTDS-1.3.1)添加到Oracle SQL Developer(工具->首选项->数据库->第三方JDBC驱动程序)后,我找到了SQL Developer的ide.conf文件,并添加了以下行:

#jTDS
Add64VMOption -Djava.library.path=../../drivers/jtds-1.3.1-dist/x64/SSO
Add32VMOption -Djava.library.path=../../drivers/jtds-1.3.1-dist/x86/SSO


这将把ntlmauth.dllLibrary

的位置添加到JVM库路径中,我不久前还在研究这个问题。我能找到的最好的东西就是上面的线。这应该是公认的答案。我希望这样能让管理员接受没有答案的老问题的答案。