【问题标题】:"How to fix 'MFA authentication DB connection error "“如何修复'MFA 身份验证数据库连接错误”
【发布时间】:2019-12-25 06:25:44
【问题描述】:

无法使用 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)

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

    尝试这样做,将 URL 更改为 Azure 允许您从中选择的默认 URL。 EXPLANATION: MFA 使用两级身份验证。为 MFA 注册任何应用程序时,将提供 CLIENT_SECRET 参数。 Azure 需要 CLIENT_SECRET 参数进行身份验证。因此使用了重定向 URL 方法。它向 Azure 表明正在注册本机应用程序并且身份验证已完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多