Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在公共DC下添加的两个虚拟机是否可以在没有用户名/密码的情况下对MsSQL服务器执行Kerberos Windows身份验证?_Java_Sql Server_Kerberos - Fatal编程技术网

Java 在公共DC下添加的两个虚拟机是否可以在没有用户名/密码的情况下对MsSQL服务器执行Kerberos Windows身份验证?

Java 在公共DC下添加的两个虚拟机是否可以在没有用户名/密码的情况下对MsSQL服务器执行Kerberos Windows身份验证?,java,sql-server,kerberos,Java,Sql Server,Kerberos,我在公共DC下添加了2个VM,并使用同一用户登录了这两台机器。e、 g.管理员 我想检查在VM1上运行的MsSQL服务器和在VM2上运行的MsSQL服务器是否能够在不提供用户名/密码的情况下执行指向VM1的MsSQL服务器的以下java代码?(因为,我使用同一个DC用户登录了这两台机器?) 我这边不行。。我正在尝试检查我期望在没有有效用户名/pwd的情况下建立的连接是否正确?我不确定我是否遵守了您在这里提出的要求。您似乎在问“这行得通吗”,但是,您处于更好的位置,可以测试它是否行得通,因为您处于

我在公共DC下添加了2个VM,并使用同一用户登录了这两台机器。e、 g.
管理员

我想检查在VM1上运行的MsSQL服务器和在VM2上运行的MsSQL服务器是否能够在不提供用户名/密码的情况下执行指向VM1的MsSQL服务器的以下java代码?(因为,我使用同一个DC用户登录了这两台机器?)


我这边不行。。我正在尝试检查我期望在没有有效用户名/pwd的情况下建立的连接是否正确?

我不确定我是否遵守了您在这里提出的要求。您似乎在问“这行得通吗”,但是,您处于更好的位置,可以测试它是否行得通,因为您处于脚本将在其中运行的环境中。如果脚本没有如您所期望的那样运行,那么告诉我们为什么它没有运行。您通读了吗?@Larnu,因为它在我这边不起作用。。我正在尝试检查我期望在没有有效用户名/pwd的情况下建立的连接是否正确?是的,您可以在两台不同的计算机上使用同一用户登录。Kerberos不使用用户名和密码,所以不知道为什么要传递这些。当您说“登录”时,这是否意味着当前登录的Windows用户是?另外,虚拟机和SQL Server计算机是否都属于同一个域?是的。。你说得对。谢谢@Charlieface
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))