为何不同双向关系场景下RLS自动流转表现存在差异?
Power BI RLS规则流转差异的原因分析
核心逻辑:RLS规则传播的约束条件
RLS规则的流转不是无限制的,它受关系筛选方向和「双向应用安全设置」共同约束:
- 默认状态下,RLS规则只会沿着关系的默认筛选方向(通常是1→M)自动传播。
- 双向关系仅允许普通筛选逻辑双向流动,但RLS规则的反向传播(M→1路径)必须手动开启「双向应用安全设置」才会生效。
对应场景拆解
场景1:Depo表配置RLS,无法自动流转到BridgeOrders/FactCharges
- Depo与FactSales是单向1→M关系:RLS规则从Depo(1端)自动沿1→M方向传到FactSales,这是RLS的默认行为,无需额外配置。
- BridgeOrders与FactSales是双向1:M关系:此时FactSales是该关系的M端,Depo的RLS传到FactSales后,要继续流向BridgeOrders(1端)属于反向传播(M→1),默认不生效,必须开启该关系的「双向应用安全设置」,才能让RLS规则从FactSales传到BridgeOrders。
- FactCharges依赖BridgeOrders的过滤:BridgeOrders未被RLS过滤时,FactCharges自然不会被联动限制。
场景2:BridgeOrders表配置RLS,自动流转到FactSales/FactCharges
BridgeOrders与FactSales、FactCharges均为双向1:M关系,且BridgeOrders是这两个关系的1端:
- RLS规则从BridgeOrders(1端)发起,沿双向关系的默认1→M方向传播到FactSales和FactCharges,这属于RLS的默认传播逻辑,无需额外开启「双向应用安全设置」——双向关系本身已允许该方向的筛选流动,RLS规则会自动跟随流转。
内容的提问来源于stack exchange,提问作者variable
相关产品推荐
相关产品推荐

