Как открыть соединение System.Data.SQLClient.SQLC с универсальной аутентификацией Active Directory

Я использовал приведенный ниже код для подключения к базе данных SQL Azure, которая использовала встроенную проверку подлинности Active Directory.

private string GenerateConnectionString(string databaseName, string serverName)
{
    SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder();
    sqlConnectionBuilder.DataSource = string.Format(
        "tcp:{0}.database.windows.net",
        serverName);
    connBuilder.InitialCatalog = databaseName;
    connBuilder.Authentication = SqlAuthenticationMethod.ActiveDirectoryIntegrated;
    connBuilder.ConnectTimeout = 30;
    return connBuilder.ConnectionString;
}

Аутентификация изменена с Интегрированной аутентификации Active Directory на Универсальную аутентификацию Active Directory для поддержки многофакторной аутентификации.

Я вижу перечисление System.Data.SqlClient.SqlAuthenticationMethod не имеет значения для универсальной аутентификации Active Directory. Можно ли еще использовать System.Data.SqlClient подключиться к БД? Если да, что мне нужно изменить в коде?

1 ответ

ActiveDirectoryInteractive метод аутентификации доступен начиная с.NET Framework 4.7.2. Не уверен, что он такой же, как "Универсальный" или нет.

По состоянию на август 2020 года появился лучший способ подключения к базе данных Azure SQL или Azure Synapse DW (пулы SQL). Используя драйвер MSOLEDBSQL (который вы можете распространять вместе с вашим приложением), ваше приложение может выполнять интерактивную аутентификацию / аутентификацию MFA с использованием обычных объектов System.Data.OleDb:

using System.Data.OleDb;
...
OleDbConnection con = new OleDbConnection("Provider=MSOLEDBSQL;Data Source=sqlserver.database.windows.net;User ID=user@domain.com;Initial Catalog=database;Authentication=ActiveDirectoryInteractive");

Фактически, это рекомендуемый способ программного подключения к любому продукту Microsoft SQL, поскольку и SQLOLEDB, и SQLNCLI (также известный как "SNAC") устарели.

Другие вопросы по тегам