湖南做网站 多少钱磐石网络,青岛网站建设外贸,做电影网站会违法吗,html 门户网站需求描述#xff1a; 某些特殊的场景下#xff0c;针对某页看板#xff0c;需要进行数据权限卡控#xff0c;但是又不能对全部的数据进行RLS处理#xff0c;这种情况下可以利用计算组来解决这个需求。 实际场景 事实表包含产品维度和销售维度 两个维度属于同一公司下面的… 需求描述 某些特殊的场景下针对某页看板需要进行数据权限卡控但是又不能对全部的数据进行RLS处理这种情况下可以利用计算组来解决这个需求。 实际场景 事实表包含产品维度和销售维度 两个维度属于同一公司下面的不同架构体系 要求用户在查看不同页面的时候根据不同的体系进行控权
案例数据 数据比较简单分别是销售维度、产品维度、事实表以及权限表。
模型关系如下图 构建基础度量值
Amt
SUM ( Fact[销售金额] )Qty
SUM ( Fact[销售数量] )将其拖拽出来如下 为了方便给大家展示白茶这里拖拽了两个一模一样的图表。 注意不单是页面权限针对不同可视化的数据权限控制办法也是一样的。 解决思路
利用DAX函数复制销售维度和产品维度 不与其他表建立模型关系 配置RLS权限 VAR AccessCount CALCULATETABLE ( VALUES ( Access[产品权限] ), Access[用户姓名] USERNAME () )
RETURNRLS_Product[产品] IN AccessCountVAR AccessCount CALCULATETABLE ( VALUES ( Access[销售权限] ), Access[用户姓名] USERNAME () )
RETURNRLS_Dep[销售代表] IN AccessCount添加计算组
打开Tabular选择创建计算组 CALCULATE (SELECTEDMEASURE (),KEEPFILTERS ( TREATAS ( VALUES ( RLS_Product[产品] ), Dim_Product[产品] ) )
)CALCULATE (SELECTEDMEASURE (),KEEPFILTERS ( TREATAS ( VALUES ( RLS_Dep[销售代表] ), Dim_Dep[销售代表] ) )
)到这里我们的所有设置基本完成
效果如下
回到PowerBI的两个页面分别添加计算组到页面筛选 我们代入一下T1这个用户来看看两个页面的数据
产品权限 销售权限 补充 如果使用RLS配置角色直接控制销售维度和产品维度那么整个数据模型都会进行过滤 一个RLS设置两张表二者是取交集 两个RLS设置两张表二者是取并集 DAX中没有函数可以获取到用户的RLS角色名称 可视化组件的权限设置与上面一致区别在于卡控的是单独的可视化筛选而不是页面筛选