首页 > 解决方案 > 如何使用托管标识(连接字符串中没有凭据)从 Azure 函数连接到 Azure SQL?

问题描述

我有一个 Azure Function 应用程序,用 C# 编写并使用在 Linux 上运行的 .NET Core (3.x)。我希望这组函数能够连接到 Azure SQL 数据库。我遵循了这个过程:

  1. 我确保函数应用启用了系统分配的托管标识: 系统分配的托管标识已启用
  2. 我使用在我的数据库中创建了一个用户CREATE USER ... FROM EXTERNAL PROVIDER并将该用户添加到适当的角色(db_datareaderdb_datawriter我的情况下)。在我的情况下,我必须创建一个 Azure AD 组并将托管标识添加到该组,然后为该组创建用户(由于某种原因,有两个带有函数应用名称的 AD 标识......) .
  3. 我在函数应用的设置中设置了连接字符串。这就是我认为我出错的地方。我不清楚如何指定正确的连接字符串。我试过的连接字符串:
    • Data Source=my-database-server.database.windows.net;Initial Catalog=my-database不工作。我看到了这样的错误:Login failed for user ''.
    • Data Source=my-database-server.database.windows.net;Initial Catalog=my-database;Authentication=Active Directory Integrated(使用System.Data.SqlClient)没有用。我看到了这样的错误:Keyword not supported: 'authentication'.
    • Data Source=my-database-server.database.windows.net;Initial Catalog=my-database;Authentication=Active Directory Integrated(使用Microsoft.Data.SqlClient)我看到了这样的错误:MSAL cannot determine the username (UPN) of the currently logged in user.

什么是魔术连接字符串咒语或我缺少的步骤?

标签: sql-serverauthenticationazure-functionsazure-sql-database

解决方案


推荐阅读