“如何解决'MFA身份验证数据库连接错误”

时间:2019-08-20 04:38:40

标签: java jdbc

无法使用Java连接SQL Server。

使用SQL Server Management Studio,我可以连接MFA帐户。但是使用src,我无法连接。

公共类数据{

public static void main(String[] args) throws SQLException {

     SQLServerDataSource ds = new SQLServerDataSource();
        ds.setServerName("demo.database.windows.net"); // Replace with your server name
        ds.setDatabaseName("demo"); // Replace with your database name
        ds.setUser("********");
        ds.setPassword("******");
     //   ds.setAuthentication("ActiveDirectoryMSI");

        Connection connection = ds.getConnection();
        java.sql.Statement stmt = connection.createStatement();

        try ( 

                ResultSet rs = stmt.executeQuery("SELECT * from customer;")) {
            if (rs.next()) {
                System.out.println("You have successfully logged on as: " + rs.getString(1));
            }
        }

}

线程“ main”中的异常com.microsoft.sqlserver.jdbc.SQLServerException:无法打开登录请求的服务器“ demo.com”。登录失败。 ClientConnectionId:c40bc308-440c-4b01-9e11-fcbef63de19e     在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)     在com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:251)     在com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:81)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:3080)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2361)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.access $ 100(SQLServerConnection.java:44)     在com.microsoft.sqlserver.jdbc.SQLServerConnection $ LogonCommand.doExecute(SQLServerConnection.java:2347)     在com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6276)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1794)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1405)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1069)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:905)     在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:452)     在com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:637)     在com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:55)     在database.Data.main(Data.java:24)

1 个答案:

答案 0 :(得分:0)

尝试执行此操作,将URL更改为默认URL Azure可让您选择。 EXPLANATION: MFA使用两级身份验证。在为MFA注册任何应用程序时,将提供一个CLIENT_SECRET参数。 Azure需要使用CLIENT_SECRET参数进行身份验证。因此,使用重定向URL方法。它向Azure指示正在注册本机应用程序,并且身份验证已完成。