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

使用USERPRINCIPALNAME()的RLS DAX表达式失效问题排查

行级安全(RLS)中USERPRINCIPALNAME()失效的排查方案

常见问题及解决步骤

  • 核对邮箱格式一致性
    先确认邮箱映射表里的邮箱地址和USERPRINCIPALNAME()返回的内容完全匹配,包括大小写、完整域名后缀(比如zhangsan@company.com不能写成zhangsan)。DAX对字符串匹配是大小写敏感的,格式差一点就会匹配失败。
  • 调整RLS筛选的作用对象
    不要直接在主表写RLS筛选,应该把筛选逻辑加在邮箱映射表上。比如给映射表添加RLS角色规则:
    [用户邮箱] = USERPRINCIPALNAME()
    
    利用映射表和主表的一对多关系,自动过滤主表中关联的行。如果直接在主表写关联筛选,容易因为上下文问题导致函数失效。
  • 验证USERPRINCIPALNAME()的实际返回值
    在Power BI里新建一个度量值:
    当前用户 = USERPRINCIPALNAME()
    
    用实际业务账号登录报表,查看这个度量值显示的邮箱,和映射表里的记录对比,确认完全一致。
  • 检查Power BI服务的身份配置
    如果是在服务端使用,确保工作区的身份验证模式是组织身份验证,避免匿名或其他模式导致函数无法正确获取用户信息。
  • 确认角色的应用与测试账号
    要确保RLS角色已经绑定到目标数据集,并且测试时用的是被授权的普通用户账号,数据集所有者默认不受RLS限制,用所有者账号测试看不到效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:03:12