使用integratedSecurity(Windows身份验证)通过JDBC从Linux连接到SQL Server?

2022-09-03 16:15:19

嘿,我在连接到在Linux上运行的Java代码的SQL Server时遇到问题。

如果我设置 ,则 java 代码失败,并显示以下错误:integratedSecurity=true

WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:b030b480-453d-4007-8151-a552150f74cd

这是有道理的,因为Linux上不会有文件。sqljdbc.dll

但是如果我设置,那么我得到以下错误:integratedSecurity=false

 com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'IT_DEV_USER'.

那么有谁知道我如何连接到设置为 false 的 SQL Server?(请注意,当Java代码在Windows上运行时设置为false时,我甚至无法连接。integratedSecurityintegratedSecurity

如果没有,我有什么办法可以在Linux上工作吗?integratedSecurity


答案 1

如果要使用集成安全性并使用 JDBC 驱动程序 4.0 或更高版本,请在 jdbc 连接字符串中添加以下内容。

integratedSecurity=true;authenticationScheme=JavaKerberos

更多信息: http://blogs.msdn.com/b/psssql/archive/2015/01/09/jdbc-this-driver-is-not-configured-for-integrated-authentication.aspx


答案 2

添加在Linux中对我有用,但请确保删除,因为您没有使用Windows。authenticationScheme=JavaKerberosintegratedSecurity=true


推荐