Для подключения к базе данных SQL Azure с помощью MFA (который в SSMS называется «Active Directory - Universal»), Microsoft рекомендует и в настоящее время имеет только учебное пособие по подключению к C # с использованием Microsoft.IdentityModel.Clients.ActiveDirectory
Установка Authentication='Active Directory Interactive';
в обычной строке подключения ODBC из Python или Powershell приводит к ошибке
Cannot find an authentication provider for 'ActiveDirectoryInteractive'
Это происходит потому, что в соответствии с примером кода Microsoft на https://docs.microsoft.com/en-us/azure/sql-database/active-directory-interactive-connect-azure-sql-db вам необходимо явно создать свой собственныйКласс провайдера аутентификации при создании соединения:
public static void Main(string[] args)
{
var provider = new ActiveDirectoryAuthProvider();
SC.SqlAuthenticationProvider.SetProvider(
SC.SqlAuthenticationMethod.ActiveDirectoryInteractive,
//SC.SqlAuthenticationMethod.ActiveDirectoryIntegrated, // Alternatives.
//SC.SqlAuthenticationMethod.ActiveDirectoryPassword,
provider);
Program.Connection();
}
Я хочу соединиться с pyodbc, поэтому я не могу реализовать провайдера ActiveDirectoryInteractive.
Есть ли какой-либо способ получить токен в общем, используяOAuth и использовать его в строке подключения, или иным образом реализовать поставщика ActiveDirectoryInteractive без использования .NET?