在Power BI中定义用户角色 - 动态角色法

使用固定角色分配方法创建角色组时需要定义数据过滤条件,而动态角色分配方法则不需要在此指定过滤条件,它是通过特定数据列来判断表单之间的关联关系从而对数据进行过滤。使用动态角色分配法需要有两个先决条件:

  • 首先,报表集中必须有一张表单包含一个用户列,该列数值具有唯一性,用来记录报表使用者用于登陆Power BI在线服务器的用户名。
  • 其次,这个表单当中还必须有一个数据列能与其他表单建立一对一或者多对一的关联关系,从而使得可以已表单中的某一用户名为基准,从其他表单中过滤出与其相关的所有数据组成一个子表单。

例如下图展示了两张数据表单,一张是学生成绩表,一张是老师信息。如果想实现特定班级的老师登录系统只能看到本班级学生的成绩,则可以利用两张表单中的Class列创建关联关系,然后使用动态角色分配方法来实现。
在这里插入图片描述
由于学生成绩表和老师信息表中的班级信息都包含重复信息,因此需要先创建一个中介表单Class,再将两张表单进行关联。
在这里插入图片描述

在将Class表单和Teach表单创建关系时“交叉筛选器方向”必须选择“两个”,同时还需勾选“在两个方向上应用安全筛选器”。

在这里插入图片描述

这样从Teacher表单出发,选中某一个教师ID后可以顺着关联关系到Class表单中确定班级信息,之后再从班级信息到All-Classes表单中可以看到该班级具体学生的考试成绩信息。确定好关联关系无误后回到数据或者报表视图页面,选择“建模”菜单栏下的“角色管理”选项,新建一个角色“Teacher”,从Teacher表单中选择ID列来创建过滤条件,使用的DAX表达式是[ID]= USERPRINCIPALNAME()。即根据登录Power BI在线服务上用户的邮箱地址来对其进行过滤。
在这里插入图片描述

Power BI一共提供了两个DAX函数用于动态角色配置方法,分别是USERNAME() 和USERPRINCIPALNAME()。

  • USERNAME()函数在Power BI桌面版会以“域名\用户名”或者“机器名\用户名”(非域环境登录用户)的形式返回登录用户信息。在Power BI在线服务器上,如果没有设置动态角色分配,USERNAME()函数会返回登录用户的GUID信息;如果配置了动态角色分配,则USERNAME()函数可以返回用户登陆的邮箱地址信息。
  • USERPRINCIPALNAME()在Power BI在线服务器上始终以“邮箱地址”的形式返回用户登录信息。在Power BI桌面版上,如果是域环境下登录的用户,则会以“用户名@域名”形式的邮箱地址显示该用户信息。如果是非域环境下的用户,则以“机器名\用户名”形式返回用回信息。

对于使用动态角色认证方式配置用户角色时,优先使用USERPRINCIPALNAME()函数。

要想验证动态角色配置是否正常工作,可以回到数据或者报表视图页面,选择“建模”菜单栏下的“以角色身份查看”选项。,选择“其他用户”以及“Teacher”角色,然后在“其他用户”配置项中输入教师的登录ID, 用来模拟该教师登录Power BI报表的情景。

在这里插入图片描述

注意:进行角色检验时除了勾选“其他用户”用来输入模拟报表使用者,还必须勾选一个角色项,例如本示例中的Teacher。否则,输入登录的模拟用户将没有任何权限来查看报表中的数据。

与固定角色分配类似,动态角色分配也可以在Power BI在线服务器上测试当前设定的角色是否可以正确的对数据进行过滤。但需要注意的是,在动态角色分配中,报表的创建者始终对报表有完全控制权限。这就意味着无论用来管理报表使用者的表单中是否包含报表创建者登录信息,其都可以查看报表中的全部数据。此外,通过创建关联关系的方式限定报表用户可见信息的方式也对报表创建值无效,当其登录Power BI在线服务器后永远可以看得表单中的全部完整信息。

本课程是PowerBI系列课程之DAX函数专题讲解,包含以下内容 1.  DAX函数基础知识什么是DAX函数数学函数:ABS、DIVIDE、MOD、RAND、ROUND、FIXED等日期和时间函数: CALENDAR、CALENDARAUTO、MONTH、YEAR、DATE、DT等信息函数:USERNAME、USERPRINCIPALNAME、HASONEFILTER、HASONEVALUE、ISFILTERED、ISCROSSFILTERED、ISINSCOPE、ISBLANK、SELECTEDMEASURE、SELECTEDMEASURENAME等逻辑函数:AND、OR、IF、IFERROR、SWITCH、TRUE、FALSE、COALESCE(官方文档含糊不清-结合实例)等关系函数:CROSSFILTER、RELATED、RELATEDTABLE等筛选器函数:FILTER、CALCULATE、ALL、ALLEXCEPT、ALLSELECTED、EARLIER、KEEPFILTERS、REMOVEFILTERS、SELECTEDVALUE、LOOKUPVALUE等父子函数:PATH、PATHCONTAINS、PATHITEM、PATHLENGTH等统计函数:AVERAGE、COUNT、MAX、MIN、SUM等迭代统计函数:AVERAGEX、COUNTX、MAXX、MINX、SUMX、RANKX等表函数: FILTERS 、ADDCOLUMNS、 SELECTCOLUMNS、 CROSSJOIN、 EXCEPT、 GENERATE、 GROUPBY、 SUMMARIZE、 SUMMARIZECOLUMNS、 TOPN、 TREATAS、 UNION、 VALUES、DISTINCT、DATATABLE、NATUALINNERJOIN、NATRUALLEFTOUTERJOIN等文本函数: EXACT、MID、 FIND、 LEN、 REPT、 LOWER、 UPPER、 UNICHAR等时间智能函数:DATEADD、DATESMTD、FIRSTDATE、LASTDATE、SAMEPERIODLASTYEAR等财务函数:2020.7之后发布的,和Excel中财务函数相似,网页和demo pbix简单介绍其他函数:BLANK、ERROR、IFERROR等 DAX函数初体验:Max、Sum、Divide、if、Values等值函数表函数以及表和列的概念DAX函数术语、语、运算符DAX运算符和引擎中字母大小写问题DAX编程注释和快捷键DAX与Excel函数的共同点和区别(PPT)DAX、xmSQL与SQL表达式的区别(PPT)DAX函数的自学途径 2.  PowerBI中数据建模知识维度建模关系传递和交叉筛选器方向-理解表关系(1v1, 1vM, Mv1,MvM)两个方向上应用安全筛选器关闭关系自动检测新建计算列新建度量值新建计算表:辅助表(五种方式)、日历表数据类型讲解数据格式控制:%、$、千位分隔符、小数位、日期格式Format函数自定义数据格式Convert函数做数据类型转换解决中文数字单位 万 的显示问题Date和DT函数定义固定日期值显示和隐藏列DAX代码分析器阅读DAX表达式方:从上至下、由内到外(注意Calculate的计算顺序)调试DAX表达式方:分布输出VAR输出3.  DAX函数原理 Vertipaq列式数据库原理理解度量值和计算列理解行上下文和筛选上下文:Calculate示意图行上下文中使用VAR替代EARLIERVAR变量在定义时的上下文中计算VAR变量是采用惰性计算(使用时计算)理解扩展表和RELATED函数理解数据沿袭Lineage 4.  开始感知DAX函数的强大DAX函数实现特殊符号的使用DAX函数实现切片器默认当前月天DAX函数使切片器默认代表无任何选择DAX函数使切片器仅显示有数据的选项DAX函数使切片器反向筛选和计算DAX函数使切片器之间取并集DAX函数使关系中多端的切片器筛选一端的切片器 DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标5.  理解重点DAX函数重中之重FILTER 和 CALCULATE和CALCULATETABLE详解调节器REMOVEFILTERS和ALL、ALLEXCEPT函数调节器ALL、ALLSELECTED和ISINSCOPE占比分析调节器AllSELECTED和KEEPFILTERS的比较调节器USERELATIONSHIP激活关系调节器TREATAS动态建立关系调节器CROSSFILTER改变筛选器方向重点之ISFILTERED和ISCROSSFILTERED重点之HASONEVALUE和ISINSCOPE的区别重点之表函数SELECTEDCOLUMNS和ADDCOLUMNS重点之表函数NATUALINNERJOIN和NATRUALLEFTOUTERJOIN重点之表函数FILTERS和VALUES比较重点之VALUES和DISTINCT的区别重点之分函数SUMMARIZECOLUMNS详解重点之函数LOOKUPVALUE vs RELATED vs VLOOKUP 重点之集合函数UNION、INTERSECT、EXCEPT重点之集合函数CROSSJOIN和GENERATE 笛卡尔积重点之值合并、列合并、表合并CONCATENATEX重点之BLANK行产生的原因和BLANK相关函数重点之COALESCE函数处理空重点之FIRSTNOBLANK和FIRSTNOBLANKVALUE函数重点之使用VAR变量表中的列重点之Error和IfError函数6.  实际案例-日期时间和时间智能相关关键点-日期表和事实表关联问题时间智能-同比环比分析时间智能-累计聚合、滚动聚合、移动平均时间智能-期初期末库存分析日期分析-计算任意所选月份的环比日期分析-周的同比环比和周聚合日期分析-指定月份的同比环比和季度环比日期分析-计算季末季末月份的数据日期分析-趋势图中根据最近月份取TopN日期分析-动态指定某个日期区间分析日期分析-动态任意区间段做数据对比日期分析-实现两个日期列的范围筛选日期分析-按工作日计算日期差日期分析-计算最近两次购买日期差日期分析-根据历史数据做销售预测日期时间函数和时间智能函数使用总结7.  实际案例-DAX函数进阶进阶-解决列排序对计算的影响进阶-实现切片器筛选之间的OR逻辑进阶-矩阵Matrix中高亮显示最大值最小值进阶-DAX列转行 vs 矩阵列转行和逆透视进阶-非日期类型的累计聚合进阶-逻辑的4种实现-RANKX详解进阶-内排的实现和理解迭代函数进阶-TopN/BottomN和Others的实现进阶-TopN中实现动态指标进阶-TopN中实现N的动态进阶-动态TopN和Others 进阶-商品折上折-迭代函数SUMX详解 进阶-分析客户购买行为进阶-找出无购买行为的客户进阶-客户购买商品关联度分析 进阶-新客户分析进阶-流失客户分析进阶-回流客户分析进阶-客户购买频次和区间分析进阶-RFM客户价值分析进阶-帕累托分析进阶-盈亏平衡分析报表性能优化思路(PPT)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值