Power Apps流集成Dataverse时CreatedBy字段显示管理员而非用户问题求助
问题根源
你的问题核心是Flow的运行身份配置错误:部署Flow时用了管理员账号,默认情况下Flow会以部署者(管理员)的身份执行所有数据操作,因此Dataverse的CreatedBy字段会被记录为管理员,而非实际操作的用户,直接导致基于用户的权限控制失效。
解决步骤
1. Power Apps触发的Flow(最适配你的场景)
这是最直接的修复方式,让Flow以操作Power Apps的用户身份运行:
- 编辑目标Flow,点击Power Apps触发器右上角的三个点(更多选项),选择「设置」
- 找到「使用调用者的连接」选项,切换为开启状态
- 检查Flow中所有Dataverse操作步骤(比如「创建记录」「更新记录」)的连接:点击连接下拉框,选择「使用当前用户的连接」(如果用户没有对应连接,需要让用户自己创建,确保连接关联的是他们自己的账号)
2. 非Power Apps触发的Flow(如手动/定时触发)
如果Flow不是由Power Apps直接触发,需要手动传递并设置用户身份:
- 在Power Apps调用Flow时,传入当前用户的ID:
User().Id - 在Flow的Dataverse「创建记录」步骤中,手动将
Created By字段映射为传入的用户ID - 注意:需要在Dataverse的安全角色中,给用户分配「写入CreatedBy字段」的权限(在实体的权限设置里调整字段级权限)
3. 权限配置补全
- 确认用户的安全角色具备对应实体的「创建」权限,且字段级安全没有限制用户对
CreatedBy字段的操作 - 检查「每应用许可证」的搭配:确保用户的许可证包含Dataverse基础访问权限,否则会出现权限不足的问题
优化建议
- 统一身份策略:所有关联用户操作的Flow,都设置为使用调用者身份,避免共享连接导致的身份混乱
- 用普通用户测试:部署后务必用实际业务用户账号验证,不要仅用管理员测试,确保
CreatedBy和权限控制正常 - 添加日志排查:在Flow中插入「撰写」步骤,记录当前运行的用户ID,方便后续快速定位身份相关问题
内容的提问来源于stack exchange,提问作者HAssanLFG
相关产品推荐
相关产品推荐

