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

如何在SSAS RLS中编写DAX公式实现门店员工数据权限控制

门店销售数据行级权限控制(SSAS)

问题背景

现有数据模型包含Y2_Stores、Y2_Sales表,表间通过storenumber/storename关联;后续新增Y2_StoreEmployee表并与Y2_Stores建立双向关联。需求是让门店员工仅能查看自身门店的销售数据,此前尝试的DAX规则未生效,以下是正确的实现方案。


方案1:仅基于Y2_Stores与Y2_Sales表

需在两个表分别配置行级安全规则,确保权限过滤传递:

  • Y2_Stores表规则:筛选当前用户对应的门店
Y2_Stores[email] = USERPRINCIPALNAME()
  • Y2_Sales表规则:匹配当前用户门店的销售数据
Y2_Sales[storenumber] = CALCULATE(VALUES(Y2_Stores[storenumber]), Y2_Stores[email] = USERPRINCIPALNAME())

注意:若两表为单向关系,必须同时设置两个表的规则;若为双向关系,仅设置Y2_Stores的规则即可自动过滤Y2_Sales数据。


方案2:新增Y2_StoreEmployee表后

假设Y2_StoreEmployee表包含employee_email(员工邮箱)、storenumber(关联门店编号)字段,与Y2_Stores双向关联,推荐以下配置:

  • Y2_StoreEmployee表规则:筛选当前用户对应的门店权限
Y2_StoreEmployee[employee_email] = USERPRINCIPALNAME()
  • Y2_Sales表规则(若关系为单向需添加,双向则可省略):
Y2_Sales[storenumber] = CALCULATE(VALUES(Y2_StoreEmployee[storenumber]), Y2_StoreEmployee[employee_email] = USERPRINCIPALNAME())

关键注意事项

  • 确保USERPRINCIPALNAME()返回的完整邮箱(如xxx@company.com)与表中存储的邮箱格式、大小写完全一致。
  • 角色需设置为只读权限,并正确添加对应AD用户/组作为成员。
  • 测试时必须使用对应员工账号登录验证,管理员账号默认不受行级安全限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:36:33