Java 到 SQL 服务器使用 Windows 身份验证

Java to SQL Server using Windows Authentication

我正在尝试从 Java 应用程序连接到远程 SQL 服务器数据库,但没有成功。

我能够从 SQL 的 SQL 客户端成功连接到那个 SQL 服务器实例 Mac 称为 SQLPro for MSSQL

但是,如果我尝试使用相同的凭据从 Java 应用程序进行连接,我总是会收到登录失败错误,这是我正在使用的代码片段:

String connectionUrl =
        "jdbc:sqlserver://some-host:1433;"
                + "database=DBName;"
                + "user=GLOBAL\user;"
                + "password=somepassword;"
                + "encrypt=true;"
                + "trustServerCertificate=true;"
                + "loginTimeout=30;";

ResultSet resultSet = null;

try (Connection connection = DriverManager.getConnection(connectionUrl);
     Statement statement = connection.createStatement();) {

    // Create and execute a SELECT SQL statement.
    String selectSql = "select * from R2.LABEL_MASTER";
    resultSet = statement.executeQuery(selectSql);

    // Print results from select statement
    while (resultSet.next()) {
        System.out.println(resultSet.getString(2) + " " + resultSet.getString(3));
    }
}
catch (SQLException e) {
    e.printStackTrace();
}

我正在为 sql 服务器 jdbc 驱动程序

使用此 gradle 依赖项

实现组:'com.microsoft.sqlserver',名称:'mssql-jdbc',版本:'10.2.0.jre11'

重要的一点是我不在 Windows 机器上,这应该不是问题,正如我提到的,我可以使用 [=] 连接到 SQL 服务器35=]客户。

要使用 Windows Auth 和 app-provided 凭据进行连接,您必须 configure the connection to use NTLM。当前连接字符串用于 SQL Auth.