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

Power Apps通过Azure AD集成认证连接SQL Server报错求助

问题分析与解决步骤

核心原因

跨租户访客用户的Azure AD令牌默认不被SQL Server识别——SQL Server的Azure AD认证默认仅信任**本租户(Tenant1)**的身份令牌,而Tenant2访客用户的令牌颁发者是其原租户,导致SQL Server拒绝验证该令牌。

解决方法

1. 开启SQL Server多租户Azure AD令牌支持

在SQL Server上执行以下T-SQL命令,启用对跨租户令牌的信任:

ALTER SERVER CONFIGURATION SET AZURE_AD_MULTI_TENANT = ON;

执行完成后重启SQL Server服务使配置生效。

2. 为跨租户组/访客用户创建SQL登录

由于包含访客的跨租户Azure AD组无法直接被SQL Server识别为有效登录主体,需手动创建对应登录:

-- 方式1:为包含跨租户成员的Group1创建登录
CREATE LOGIN [Group1@tenant1.org] FROM EXTERNAL PROVIDER;

-- 方式2:为单个Tenant2访客用户创建登录(替换为实际用户UPN)
CREATE LOGIN [user@tenant2.org] FROM EXTERNAL PROVIDER;

接着在目标数据库中授予读写权限:

USE [你的目标数据库名];
-- 对应方式1:给Group1授权
CREATE USER [Group1@tenant1.org] FOR LOGIN [Group1@tenant1.org];
ALTER ROLE db_datareader ADD MEMBER [Group1@tenant1.org];
ALTER ROLE db_datawriter ADD MEMBER [Group1@tenant1.org];

-- 对应方式2:给单个访客用户授权
CREATE USER [user@tenant2.org] FOR LOGIN [user@tenant2.org];
ALTER ROLE db_datareader ADD MEMBER [user@tenant2.org];
ALTER ROLE db_datawriter ADD MEMBER [user@tenant2.org];

3. 验证Power Apps连接器配置

  • 在Power Apps编辑界面,进入SQL连接器设置,确认Azure AD集成认证模式已正确选中,无自定义资源ID配置错误。
  • 确保连接器使用的是针对https://database.windows.net/的令牌(SQL Server的标准资源标识符)。

4. 确认访客用户的权限同步

  • 检查Tenant2访客用户已成功加入Tenant1的Group1,等待Azure AD组成员身份同步完成(通常需15-30分钟)。
  • 确认Tenant1中访客用户的权限级别未被限制(默认来宾权限即可满足需求)。

5. 排查网络与防火墙规则

如果是Azure SQL数据库,确保已启用允许Azure服务和资源访问此服务器的防火墙规则,避免Power Apps的出站IP被拦截。


内容的提问来源于stack exchange,提问作者Charles K. M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:06:05