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

Power Apps共享后其他用户访问Azure SQL数据库提示登录失败求助

问题排查与解决方案

核心问题分析

错误 Login failed for user '<token-identified principal>' 本质是:用户的AAD身份已通过Power Apps认证,但Azure SQL数据库层面未对该身份授权访问权限,导致数据加载失败。

分步排查修复

1. 确认Azure SQL服务器的AAD管理员配置

  • 登录Azure门户,定位到目标SQL服务器,进入「Active Directory管理员」页面
  • 确保已配置公司AAD安全组(包含所有需要访问的用户)或专用管理员账号作为服务器级AAD管理员(仅设置个人账号的话,其他用户无法自动继承权限)
  • 若未配置,直接添加对应AAD组或管理员账号

2. 为用户/组分配数据库级访问权限

即使有服务器管理员权限,仍需明确授予数据库操作权限:

  • 通过SSMS或Azure门户的查询编辑器连接目标数据库,执行以下SQL命令:
    -- 针对单个用户创建AAD身份映射
    CREATE USER [用户公司邮箱] FROM EXTERNAL PROVIDER;
    -- 分配数据读取权限(按需调整为db_owner等更高权限)
    ALTER ROLE db_datareader ADD MEMBER [用户公司邮箱];
    
    -- 针对AAD组的命令(更推荐批量管理)
    CREATE USER [AAD组名称] FROM EXTERNAL PROVIDER;
    ALTER ROLE db_datareader ADD MEMBER [AAD组名称];
    

3. 检查Power Apps共享时的数据源权限

  • 在Power Apps编辑器的「共享」界面,除了共享应用本身,务必勾选对应的Azure SQL数据源,给用户分配「可以使用」的权限
  • 确认连接使用的是「Azure Active Directory - 通用」认证方式,而非SQL账号认证

4. 验证用户身份与Token有效性

  • 让测试用户打开Power Apps监视器,查看请求头中的Token是否携带正确的公司租户ID和用户UPN
  • 确认用户账号是公司AAD的内部成员,而非外部来宾账号

5. 检查SQL服务器防火墙规则

  • 进入Azure SQL服务器的「防火墙和虚拟网络」页面,勾选「允许Azure服务和资源访问此服务器」选项,确保Power Apps的服务IP能正常连接数据库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:27:07