从SQL AUTHENTICATION到AZURE AD AUTHENTICATION的SQL Server身份验证模式

wkftcu5l  于 2023-08-07  发布在  SQL Server
关注(0)|答案(1)|浏览(105)

是否可以将SQL Server身份验证模式从SQL AUTHENTICATION迁移到AZURE AD AUTHENTICATION,在.Net框架中运行App服务使用Entity框架连接SQL Server?

hfsqlsce

hfsqlsce1#

默认情况下,Azure SQL允许SQL身份验证和Azure AD身份验证,但要使Azure AD身份验证起作用,您需要在Azure门户中或通过使用PowerShell为您的Azure SQL逻辑服务器设置Azure Active Directory管理员。在这里,您将了解如何在Azure门户中执行此操作。


的数据
完成上一步后,您可以使用Azure Active Directory(Azure AD)对Azure SQL数据库使用基于令牌的身份验证。下面你会找到一个EF示例代码,说明如何进行基于令牌的身份验证,你会在this StackOverflow论坛线程中找到更多细节。

class Program
{
    static void Main()
    {
        SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
        builder["Data Source"] = "brucesqlserver.database.windows.net";
        builder["Initial Catalog"] = "brucedb";
        builder["Connect Timeout"] = 30;

        string accessToken = TokenFactory.GetAccessToken();
        if (accessToken == null)
        {
            Console.WriteLine("Fail to acuire the token to the database.");
        }
        using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
        {
            try
            {   
                connection.AccessToken = accessToken;
                //working with EF
                using (var model = new BruceDbContext(connection))
                {
                   var users= model.Users.ToList();
                    Console.WriteLine($"Results:{Environment.NewLine}{JsonConvert.SerializeObject(users)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        Console.WriteLine("Please press any key to stop");
        Console.ReadKey();
    }
}

字符串

相关问题