如何解决可以在公共 DC 下添加 2 个 VM,在没有用户名/密码的情况下对 MsSQL Server 执行 Kerberos Windows 身份验证吗?
我在公共 DC 下添加了 2 个 VM,并使用同一用户登录两台机器。例如administrator
如果我执行下面指向 VM1 的 MsSQL Server 的 java 代码,我想检查我的 MsSQL Server 是否在 VM1 和 VM2 上运行,是否能够在不提供用户名/密码的情况下执行“Windows 身份验证”? (因为,我使用同一个 DC 用户登录了两台机器?)
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* This program demonstrates how to establish database connection to Microsoft
* SQL Server.
*
*/
public class JdbcSQLServerConnection {
public static void main(String[] args) {
Connection conn = null;
try {
String dbURL = "jdbc:sqlserver://<ip of machine 1 where MsSQL Server>:1433;integratedSecurity=true;authenticationScheme=javaKerberos";//;authentication=NotSpecified
String user = "myrandomUsers";
String pass = "myrandomPwd";
conn = DriverManager.getConnection(dbURL,user,pass);
if (conn != null) {
DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
System.out.println("Driver name: " + dm.getDriverName());
System.out.println("Driver version: " + dm.getDriverVersion());
System.out.println("Product name: " + dm.getDatabaseProductName());
System.out.println("Product version: " + dm.getDatabaseProductVersion());
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
我收到如下错误
C:\Users\Administrator.WIN2016\Desktop\MsSQL1>java -cp mssql-jdbc-8.4.1.jre8.jar
; JdbcSQLServerConnection
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot login with Kerberos prin
cipal administrator,check your credentials. Kerberos Login failed: Integrated a
uthentication failed. ClientConnectionId:40a56fce-e909-483d-ab1d-56900d44311d du
e to javax.security.auth.login.LoginException (Pre-authentication information wa
s invalid (24))
它最终不起作用..我正在尝试检查我在没有有效用户名/密码的情况下建立的期望连接是否正确?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。