一、引言
在公司业务需求中,我们常常会遇到如下的权限分配问题:
报表中本部门同事需要分配所有页面可见的权限,但对于其他不同部门同事需要分配有些页面可见,有些页面不可见的权限,也就是我们常说的PLS权限级别控制(Page Level Security)。
如何实现以上需求呢?
我们知道在PowerBI中,仅仅只有RLS级别的权限分配,并没有官方的PLS权限分配的直接方式,那么今天就和大家分享一种通过一个简单DAX函数:USERPRINCIPALNAME()和自建表的方法来实现页面的权限分配控制。
二、具体教学
要实现PLS对页面的权限控制,本质是先通过Hide所有页面,只留一个主页面,在主页面上通过Page Navigator对不同用户导航至他们权限对应的报表页面。
首先我们先建立一张带有用户信息以及其对应分配权限的表:
用户信息常为公司邮箱,Page列代表对应员工能看哪几页的报表。

对应报表页面(其中page 1为主页面,其他页面需要根据不同用户进行不同权限分配)

接着我们根据这张表的信息来进行权限分配:【Modeling】下的【Manage roles】
新建一个 【Roles 】: Page Security
选中刚刚创建的用户信息表,【Rules】选择用DAX函数,左边为用户信息列名右边为DAX函数
[User] = userprincipalname()

这样,我们的权限制作步骤就基本完成,接下来就通过Page Navigator来导航不同用户到对应界面。
我们需要创建一个页面筛选器(风格为Drilldown形式)来对下方的“箭头”(Page Navigator)来分配导航去向。

关于“箭头”导航器的制作:
首先在【Insert】下,【Buttons】中为我们提供了许多箭头标志,选择向右的箭头。
在箭头的【Format Button】下,打开【Action】,【type】选择【Page Navigation】,【Destination】如下图操作:

相同的,在其他页面中我们也需要做一个返回箭头来回到第一页(主页面)

然后我们的页面权限分配就做好了,下面我将分别用两个用户的报表页面来展示效果:
现在我在用我的公司账户登录,由于我的分配权限为四个表,所有现在筛选器显示我访问这四个表都是可以的。

接着如果我通过另一位同事的账户登入,根据上面excel表格中的登记信息,该用户只能访问page 1和page 2所以此时在报表中的展现就为:筛选器只能访问这两张表,其他表格由于Hide掉且没有导航器导航将不对该用户开放访问。

3268

被折叠的 条评论
为什么被折叠?



