Power BI多列行级别安全(RLS)配置求助:多邮箱列场景
行级别安全(RLS)过滤规则补充方案
需求说明
需要为包含CountryCode列的目标表配置RLS,仅允许登录用户在以下两种情况之一时访问对应行数据:
- 用户的UPN(用户主体名称)与
OwnerEmail列值完全匹配 - 用户的UPN存在于逗号分隔、数量不固定的
AdditionalOwner列中
补充后的完整DAX过滤逻辑
在目标表的RLS角色过滤器中,使用以下DAX公式即可实现需求:
OR( // 匹配OwnerEmail列的情况 [OwnerEmail] = UserPrincipalName(), // 匹配AdditionalOwner列的情况:先移除空格避免匹配失败,再检查是否包含当前用户UPN CONTAINSSTRING( SUBSTITUTE([AdditionalOwner], " ", ""), UserPrincipalName() ) )
公式说明
UserPrincipalName():获取当前登录用户的UPNSUBSTITUTE([AdditionalOwner], " ", ""):移除AdditionalOwner字段中的所有空格,解决逗号后带空格(如test1@test.com, test2@test.com)导致的匹配失效问题CONTAINSSTRING:检查处理后的AdditionalOwner字符串中是否包含当前用户的UPNOR:将两个匹配条件做逻辑或,满足任意一个条件即可访问对应行
列结构示例
| CountryCode | AdditionalOwner | OwnerEmail |
|---|---|---|
| AU | test1@test.com,test2@test.com | test2@test.com |
内容的提问来源于stack exchange,提问作者Alias Varghese
相关产品推荐
相关产品推荐

