我有一个 C# dotnet core 3.1 Azure Function App(名为 func-utrngen-dev-001),我想将其配置为通过托管标识对 Sql Azure 数据库进行身份验证。
采取的步骤:
为 sql server 帐户创建 AAD 管理员
使用该帐户打开与 sql server 的连接
运行以下命令以创建与 azure 函数应用程序同名的“包含用户”
从外部提供商创建用户 [func-utrngen-dev-001]
更改角色 db_datareader 添加成员 [func-utrngen-dev-001]
更改角色 db_datawriter 添加成员 [func-utrngen-dev-001]
确保从 Sql Server\Security\Firewalls 和虚拟网络 blas 下的 Azure 门户将“允许 Azure 服务和资源访问此服务器”设置为“是”
确保在功能应用的身份刀片上将系统分配\状态设置为“开”
当函数应用尝试进行身份验证时,我收到以下错误:
<块引用>用户“
因此,我安装了 Microsoft 的“MSI 验证器”工具并执行了 here 所述的步骤。 我从 Kudu 会话的 Powershell 窗口运行以下命令:
<块引用>./msi-validator.exe test-connection -r sql -e "Data Source=sql-utrngen-dev-001.database.windows.net;Initial Catalog=utrngen;"
它成功获得了一个令牌,但随后失败,并出现与我的函数应用程序相同的错误:
<块引用>无法连接到 SQL。异常:用户登录失败 '<令牌识别主体>'
接下来我应该尝试什么?
答案 0 :(得分:0)
修复是为数据库提供正确的名称?♂️。多急少速度