You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure中App Service发布后Authentication=Active Directory Default对应实体是什么?

问题解答

未知实体是什么?

当App Service部署后使用Authentication=Active Directory Default连接SQL时,这个“未知实体”其实是App Service的系统托管标识(System-assigned Managed Identity)。本地环境下该配置会自动使用你当前登录的Azure AD账号;但部署到App Service后,默认会切换为App Service自身的系统托管标识进行AD认证。

之前正常、重启后失效,大概率是这个托管标识的数据库访问权限被意外移除,或者标识本身的配置出现了变更。

如何查看该实体的访问权限?

1. 确认App Service的系统托管标识

  • 登录Azure门户,打开你的App Service资源
  • 左侧导航栏找到「标识」,切换到「系统分配」标签页
  • 这里显示的名称就是App Service的系统托管标识名称(和App Service名称一致),状态应为「开启」

2. 查看该标识在SQL数据库中的权限

方式一:通过SQL查询验证

用SSMS或Azure门户的SQL数据库「查询编辑器」执行以下语句:

-- 列出数据库中所有AD相关的用户/主体
SELECT name, type_desc, authentication_type_desc 
FROM sys.database_principals 
WHERE type_desc IN ('EXTERNAL_USER', 'EXTERNAL_GROUPS');

-- 查看特定标识的权限(替换为你的App Service标识名称)
USE [你的数据库名称];
EXEC sp_helprotect @username = '你的App Service名称';

方式二:通过Azure门户查看

  • 打开你的SQL数据库资源,左侧导航栏找到「权限」
  • 在「角色分配」中搜索你的App Service名称,即可看到它被分配的数据库角色(比如db_datareader、db_datawriter等)

3. 额外排查点

  • 检查SQL Server的「Azure Active Directory」->「管理员」是否已配置AD管理员(托管标识需要AD管理员存在才能完成授权)
  • 确认SQL Server防火墙规则是否允许Azure服务访问(或包含App Service的出站IP)
  • 查看App Service的「日志流」或「诊断日志」,获取更详细的连接错误信息,确认是认证失败还是权限不足

内容的提问来源于stack exchange,提问作者Oliver Nicholls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:23:08