前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BI技巧丨权限管控

BI技巧丨权限管控

原创
作者头像
PowerBI丨白茶
发布2022-01-22 12:46:25
1.2K0
发布2022-01-22 12:46:25
举报
文章被收录于专栏:PowerBIPowerBI

BI可视化在实施过程中,用户最关注的点有哪些?

这个问题相信很多小伙伴都遇到过,或者被其他人问过,白茶总结了一下用户比较在意的几个点:安全性、自助性、权限管控、易用性、兼容性、扩展性、便捷性、反应速度等。

本期呢,我们来聊一聊关于权限管控那些事。

PowerBI截至目前为止,可以实现的权限管控包含三方面:页面权限、行权限、列权限

那么这三者在PowerBI中是如何实现的呢?别急,跟着白茶的思路走。

先来看看本期的案例数据:

案例数据并不是很复杂,共计三张表,分别是权限表、国家表以及案例数据。

将其导入到PowerBI中,我们对权限表进行一下简单的处理。

这是在PowerQuery中关于权限表的截图,大家可以看到页面权限和国家权限采用逗号分割的方式进行存储。

我们需要对这两列进行一下拆分处理。

选择“页面权限”,选择“拆分列”,选择按“分隔符拆分”。

选择“自定义分隔符”,输入文本间的间隔,选择高级选项,选择拆分为“行”。

结果如下:

同理,根据上面的操作,我们将“行权限”进行拆分。

这样做的好处在于,报表正式投入使用后,用户只需要维护Excel文件中的权限配置,PowerBI就会在后台自动执行拆分,进行报表权限控制。

选择关闭并应用,模型如下图。

这里注意一下,权限表不需要与其他表建立模型关系。

白茶根据案例数据,简单的做了如下几个报表。

首页:作为页面权限管控使用,使用字段为权限表中的页面权限字段。

可视化页面:用来展示列权限。

明细页面与地图页面:展示页面权限与行权限使用。

到这里,我们的准备工作基本完成,我们来看一下,三者在PowerBI中的实现方式。

页面权限:

1.报表页面命名与隐藏。

这里大家需要注意,报表页面的名称,一定要与Excel中的文本相对应,不然会导航失败。

当我们配置完成后,除了首页之外的页面,均要设置为隐藏;发布时页面要停留在首页。

2.页面权限配置:选择“管理角色”,选择创建一个角色“页面权限”,在“权限表”输入以下代码。

代码语言:txt
复制
[邮箱]=USERNAME()

3.页面设置:切片器字段选择权限表中的“页面权限”字段。

添加如下度量值:

代码语言:txt
复制
页面选择 =
SELECTEDVALUE ( '权限表'[页面权限] )

添加按钮,在“操作”设置中选择类型为“页导航”,点击“fx” 按钮,选择字段值为“页面选择”。

到这里,页面权限配置完成,我们点击面板上的“通过以下身份查看”。

其他用户这里面我们可以输入用户的邮箱进行测试。

我们输入BB测试一下:

可以看到,当我们输入BB邮箱时,切片器会自动的根据用户的权限进行页面筛选。

行权限(RLS):

行权限这个往往代表用户所能看到的数据范围。

1.添加如下度量值:

代码语言:txt
复制
国家权限 =
VAR CountryAccess =
CALCULATETABLE ( VALUES ( '权限表'[行权限] ), '权限表'[邮箱] = USERNAME () )
RETURN
SELECTEDVALUE ( '国家表'[CountryZH] ) IN CountryAccess

2.在管理角色页面添加新角色如下。

代码如下:

代码语言:txt
复制
[国家权限]=True()

这样我们能看到的数据范围,就会根据用户的权限进行筛选。

我们在报表页面进行一下简单的查看。

列权限(OLS):

列权限管控,通常代表用户可以看到不同的列。

在PowerBI中,有两种方式可以实现:A.Tabular Editor的方式。B.DAX的方式。

这两种方式,A的方式其实白茶不太建议大家去使用。

举个例子:Tabular Editor可以控制某一物理列根据用户权限是否显示,那么这一列,制作报表的过程中,就需要慎用,一旦使用了,某些无权限的用户打开报表时,报表页面就会有部分可视化图表报错,这对用户的体验来说,非常的差。

B的方式,是白茶比较推荐大家的,将列权限写进DAX中,这样更加的灵活。

模拟场景:

若用户是“管理层”,则图表显示“Budget”数据,若用户是“执行层”,则图表显示“Amount”数据。

编写如下DAX:

代码语言:txt
复制
列权限 =
VAR RoleAccess =
CALCULATETABLE ( VALUES ( '权限表'[角色] ), '权限表'[邮箱] = USERNAME () )
RETURN
IF ( RoleAccess = "管理层", SUM ( '案例数据'[Budget] ), SUM ( '案例数据'[Amount] ) )

将其放入到可视化中,我们来看一下效果。

DAX控制列权限的方式,最佳实践是与SSAS搭配使用,这样可以在Tabular中将列进行隐藏,只呈现DAX给用户,实现真正的OLS管控。

注意事项:

1.权限控制可以在本地部署和云上Servers使用,本机免费版仅可以通过角色进行查看。

2.云上Servers使用最低许可证需要为Pro账号。

3.云上Servers需要将被分享用户添加到对应工作区,权限为“查看器”。且需要在同一组织中。

4.需要对数据集安全性进行设置,将用户邮箱添加到角色里面。

(白茶:文件在知识星球)

这里是白茶,一个PowerBI的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com