从SQL Developer连接SQL Server

4
我搜索了所有可用的网络主题,但没有一个能帮到我。
我正在尝试从SQL Developer连接到SQL Server引擎。为此,我在SQL配置管理器中启用了命名管道和TCP/IP。
然后我尝试了不同的驱动程序:
- 我尝试了Microsoft JDBC驱动程序,但无法在连接管理器中选择SQL Server数据库类型,因此无法使用。 - 我尝试使用jTDS驱动程序,它可以选择SQL Server数据库类型,但是我得到的错误提示是无法连接到本地主机上的Microsoft SQL Server(我尝试使用本地主机和计算机名称,但都不起作用)。
我还能做些什么吗?
编辑:
这是我目前的进展:

enter image description here

第二次编辑
我遇到了更多问题:
  1. 出现错误,提示:

    状态:失败-I/O 错误:SSO 失败:未加载本机 SSPI 库。请检查 java.library.path 系统属性

  2. 使用 Windows 身份验证时,仍然要求输入用户名和密码。

(所有细节和解决方案都在我的下面的答案中)

你的电脑上是否正在运行SQL Server,因此是“localhost”?端口1433是否正确? - thatjeffsmith
@thatjeffsmith 是的,它正在我的电脑上运行。我相当确定1433是正确的,但我正在尝试确保它.. - Michał Turczyn
将配置管理器中的端口设置为指定值。请参见以下链接:https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-a-server-to-listen-on-a-specific-tcp-port?view=sql-server-2017 - thatjeffsmith
@thatjeffsmith,这确实有所帮助,但现在我遇到了有关本地驱动程序的错误...请在您的评论中扩展您的答案,我会尽快接受它并让它正常工作 :) - Michał Turczyn
很高兴能帮助Michal,但请先分享您的实际错误信息。 - thatjeffsmith
显示剩余4条评论
2个回答

4
我们仅支持 jTDS 驱动程序用于 SQL Server 和 Sybase ASE 连接,所以这是正确的选择。
此后,您需要获取正确的连接字符串来连接到 SQL Server 系统。
确保除了 'localhost' 网络位置之外,还有正确的端口来访问您的 SQL Server 实例。
这里使用了版本 19.1 的 SQL 开发者工具来连接到海外的 SQL2012 实例。 enter image description here

这仍然是真的吗? - zielot
@zielot 是的,没有改变。 - thatjeffsmith
谢谢Jeff,我唯一不明白的是为什么在点击“测试”按钮时凭证是正确的,但在点击“连接”按钮的半秒钟后就不再正确了。我只是按顺序按下这两个按钮,没有在连接表单中做任何更改。 - undefined
一些更多的信息... 这里涉及到的技术栈有:
  • MS SQL Server 2019
  • SQL Developer 23.1.0(内嵌JRE)
  • jtds-1.3.1
- undefined
好的,我解决了这个问题...从事件查看器中,我得到了一个日志,说密码不匹配。所以我猜测客户端和服务器只是使用了不同的加密算法,所以我在SQL Server上创建了一个新用户,密码为空,然后问题就解决了。 - undefined
显示剩余2条评论

2

实际上还有更多问题,我将在此发布,并提供解决方案:

为了能够从SQL Developer连接SQL Server数据库类型,需要安装jTDS驱动程序,如前所述。其他类型不受SQL Developer支持。
接下来要做的是使用SQL Configuration Manager(在我看来是最简单的方法)配置SQL Server以侦听IP端口1433,而不是先前设置的动态端口。为了在配置管理器中执行此操作,我必须转到SQL Server Network Configuration并进行适当更改。更多信息here
接下来遇到了问题:
状态:失败-I/O错误:SSO失败:未加载本地SSPI库。检查java.library.path系统属性
这是缺少文件的错误,解决方案是将文件ntlmauth.dll放置在SQL Developer目录中的/jdk/bin中。
我选择了Windows身份验证,但显然jTDS不支持它,因此我需要在SQL Server中创建用户,我用它来从SQL Developer连接SQL Server。
经过所有这些,我让它工作了。

我有过同样的经历,但是在将DLL文件复制到\jdk\jre\bin\后,我成功地使Windows身份验证工作起来了。然后我注意到SQL Developer中存在一个错误,它认为需要提示输入密码,但实际上并不需要...为了绕过这个问题,我在连接中输入了一个无意义的用户名和密码,关闭了“保存密码”选项,然后切换到了Windows身份验证。 - Jason
我有同样的经历,但在将DLL复制到\jdk\jre\bin\后,我成功让Windows身份验证工作了。然后我注意到SQL Developer中的一个bug,它认为需要提示输入密码,但实际上不需要。为了解决这个问题,我在连接中输入了一个无意义的用户名和密码,关闭了“保存密码”选项,然后切换到了Windows身份验证。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接