我正在尝试从 VS 包管理器控制台连接到 SQL Azure 数据库 - 例如
Update-Database -ConnectionString "Some connection string that let's me connect with AzureAD MFA" -ConnectionProviderName "System.Data.SqlClient"
我得到的最接近的是使用这个连接字符串,但我收到一个错误,说需要 MFA,这是有道理的!是否有另一种方法可以指定通过 AAD 进行身份验证的连接并提示我进行 MFA,类似于 SSMS 可以做到的方式?
如果您使用的是 .net 5+,您可能需要从
切换using System.Data.SqlClient;
至 using Microsoft.Data.SqlClient;
并使用如docs中所示的连接字符串,这将提示用户在浏览器窗口中登录。
// Use your own server, database, and user ID.
// User ID is optional.
string ConnectionString1 = @"Server=demo.database.windows.net; Authentication=Active Directory Interactive; Encrypt=True; Database=testdb; User [email protected]";
using (SqlConnection conn = new SqlConnection(ConnectionString1)) {
conn.Open();
}
// User ID is not provided.
string ConnectionString2 = @"Server=demo.database.windows.net; Authentication=Active Directory Interactive; Encrypt=True; Database=testdb";
using (SqlConnection conn = new SqlConnection(ConnectionString2)) {
conn.Open();
}
据我所知,启用Azure AD MFA的用户可以使用C#连接Azure SQL数据库。C#程序使用交互模式的身份验证,支持Azure AD多重身份验证(MFA)。例如,连接尝试可能包括发送到您的手机的验证码。更多详情请参考官方文档。