【问题标题】:Oracle SQL Developer connection to Microsoft SQL ServerOracle SQL Developer 与 Microsoft SQL Server 的连接
【发布时间】:2014-07-10 22:41:31
【问题描述】:

我一直在尝试获取最新版本的 Oracle SQL Developer (4.0.2) 以使用 Windows 身份验证连接到 Microsoft SQL 服务器,但没有成功。我已经从 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。

【问题讨论】:

标签: sql-server oracle-sqldeveloper


【解决方案1】:

对于 x64 系统,只需将 ..\jtds-1.3.1-dist\x64\SSO\ntlmauth.dll 复制到 -> ..\sqldeveloper\jdk\jre\bin 文件夹。对于 x86 系统,也可以复制粘贴类似的文件夹内容。

【讨论】:

  • 这确实应该是公认的答案。我希望 SO 能让管理员接受没有答案的旧问题的答案。
【解决方案2】:

我遇到了完全相同的问题。我最终通过将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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      将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.dll 库的位置添加到 JVM 库路径

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-20
        • 1970-01-01
        • 2015-03-19
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多