通过 JDBC 从 Linux 计算机使用 Windows 身份验证连接到 SQL Server

新手上路,请多包涵

我希望能够使用 jdbc 和 Windows 身份验证连接到 SQL Server。我在互联网上看到一些答案说我应该将以下属性添加到连接字符串中:

 integratedSecurity=true;

并且还添加

sqljdbc_auth.dll

到java路径。

但据我所知,这仅适用于我从 Windows 机器连接时。当我在 Linux 机器上尝试这个时,我得到:

 java.sql.SQLException: This driver is not configured for integrated authentication

我的问题是如何从 Linux 机器上执行此操作。

谢谢

原文由 zuckermanori 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 818
2 个回答

好吧,最后我回答了我自己的问题:这不可能在使用 Microsoft JDBC 驱动程序的 linux 机器上使用 Windows 身份验证。这可以通过使用以下连接字符串的 jTDS JDBC 驱动程序实现:

 jdbc:jtds:sqlserver://host:port;databaseName=dbname;domain=domainName;useNTLMv2=true;

谢谢大家的评论

原文由 zuckermanori 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于那些使用 DBeaver 的人来说,连接到 SQL Server 数据库的方法是:

为了使用 DBeaver 从 Linux Debian 连接到 SQL Server

1.- 选择 SQL Server jTDS 驱动程序

在此处输入图像描述

2.- 输入连接信息

在此处输入图像描述

3.- 转到驱动程序属性选项卡并添加域、用户、密码

在此处输入图像描述

在此处输入图像描述

请注意,在一些帖子中,我发现他们需要将属性 USENTLMV2 更改为 TRUE,但通过将 USERTLNMV2 设置为 true 或 false,它对我有用。

我发现的一个问题是,当我尝试使用我的用户名和密码连接到数据库时,抛出了下一个错误:

登录失败。登录来自不受信任的域,不能与 Windows 身份验证一起使用。

在此处输入图像描述

抛出此错误是因为我的用户即将过期。我尝试了另一个 AD 用户,它可以连接。

原文由 mavi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题