mssql-jdbc 总是抛出 authenticationScheme NTLM 无效
mssql-jdbc always throws The authenticationScheme NTLM is not valid
new SQLServerDriver();
String connectionUrl = "jdbc:sqlserver://<server>;integratedSecurity=true;authenticationScheme=NTLM;domain=<MYDOMAIN>;user=<user>;password=<password>;";
try (Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement()) {
String SQL = "select auth_scheme from sys.dm_exec_connections where session_id=@@spid";
ResultSet rs = stmt.executeQuery(SQL);
while (rs.next()) {
System.out.println(rs.getString(1));
}
}
这是我的 OS 和 Java 版本:
OS: Windows 10
openjdk 版本“1.8.0_242”
OpenJDK 运行时环境(build 1.8.0_242-b08)
OpenJDK 64 位服务器 VM(内部版本 25.242-b08,混合模式)
不管字符串是 'NTLM' 还是 'ntlm' 等这条消息:
The authenticationScheme "" is not valid
我遇到了同样的问题。使用最新的 jdbc 驱动程序版本 mssql-jdbc-9.2.0.jre8.jar
即可解决。另外,请确保将 dll 文件 mssql-jdbc_auth-9.2.0.x64.dll
放置在 lib 路径中。
new SQLServerDriver();
String connectionUrl = "jdbc:sqlserver://<server>;integratedSecurity=true;authenticationScheme=NTLM;domain=<MYDOMAIN>;user=<user>;password=<password>;";
try (Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement()) {
String SQL = "select auth_scheme from sys.dm_exec_connections where session_id=@@spid";
ResultSet rs = stmt.executeQuery(SQL);
while (rs.next()) {
System.out.println(rs.getString(1));
}
}
这是我的 OS 和 Java 版本:
OS: Windows 10
openjdk 版本“1.8.0_242”
OpenJDK 运行时环境(build 1.8.0_242-b08)
OpenJDK 64 位服务器 VM(内部版本 25.242-b08,混合模式)
不管字符串是 'NTLM' 还是 'ntlm' 等这条消息:
The authenticationScheme "" is not valid
我遇到了同样的问题。使用最新的 jdbc 驱动程序版本 mssql-jdbc-9.2.0.jre8.jar
即可解决。另外,请确保将 dll 文件 mssql-jdbc_auth-9.2.0.x64.dll
放置在 lib 路径中。