PowerBI企业级权限控制全动态终极解决方案.docx

PowerBI企业级权限控制全动态终极解决方案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? ? ? ? ? PowerBI企业级权限控制全动态终极解决方案 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 任何在企业中的应用首先涉及的就是:权力。错了,是权限。因此权限控制是任何解决方案应该率先考虑的。本文给出在PowerBI中的动态权限控制的终极解决方案:用Excel配置权限后自动适应。 PowerBI 中的权限控制全面解析 PowerBI中的权限控制是分层次的,具体请以官方文档为准。但为了便于快速理解,这里特此编制了一个权限结构图: 这里涉及到8个构件,并用一个比喻来理解PowerBI的权限控制,想象一下:你作为自己家的主人,想让陌生人到你家的某个抽屉里拿东西。如下: Power BI Pro 账号,如:chujie@。首先,应该有一个账号可以登录云端,因为Power BI的权限控制的最终体现是在云端的。这就像是一个居民身份证。即使是陌生人,也必须有身份证。 Workspace(工作区),可以理解为你家。家里有两种角色,一种是管理员,一种是成员。你是自己家的管理员(Admin),管理员具有对家里无限的权限。管理员可以添加或改变成员。家里的成员对家里内容有两种可能的权限,可编辑和只读。可编辑家里内容的成员对家里的东西也有无限的修改权限。而只读的成员则只能看。 对于只能看的成员,看的内容就是数据集。如果这种成员是只能看的,可以进一步限制能看的范围。 Row-Level Security(行级别安全性),确定了那种只能看的成员的可看的范围。并通过:角色-成员 与 模型-表格 的结构进行可能的多种控制。 Role(角色),行级别安全性直接控制的是角色,而并不直接管理某成员。某个角色可以有多个成员。 Member(成员),成员也可以有多个角色,在成员有多个角色的情况下,成员可以看到的内容,由多个角色共同决定。如:角色A可以看北京数据,角色B可以看上海数据,则具有角色A和角色B的成员可以看北京和上海的数据。 Model(数据模型),由多个形成关系的表组成,权限的控制将按关系的箭头方向进行传递。但当涉及到含行级别安全性的双向传递时,可能引发复杂状况,稍后单独说明。 Table(dim 或 fact),首先需要纠正一个概念,在PowerBI中是不存在维度表和事实表这种说法的,所有的表之间都是平等的关系,但也许有人(传统IT)习惯使用维度表或事实表的概念便于理解,但真实情况并非如此,没有DW概念的终端用户是不会事先知道维度表或事实表的(这超过了本文的范围,不再展开)。 因此,这里可以澄清几个重点了: 一上来就认为设置了行级别安全性就可以控制安全是错误的认识。 安全性的设置是分层次的。 行级别安全性的设置对双向筛选是有影响的。例如:只能看北京地区销售数据的经理,应该看到的客户数是全局的还是北京的。答案显然是北京的,但往往会由于忽略设置,导致看到的是所有的。 另外,如要使用行级别安全性的控制,首先必须满足如下条件: 被控制的用户,应该有Power BI Pro账号。 被控制的用户,应该在被控制的工作区,并且是只读的成员。(此步非常重要,且必须是只读的) 被控制的用户,应该添加进入某个数据集的安全性设置的某个角色。 接下来才轮到行级别安全性的控制来接管。 初步方案:PowerBI 中行级别安全性的静态设置 什么是静态设置,就是一旦设置了,就固定了。标准流程如下: 设置一个角色,如:北京大区 为角色设置筛选,如:地区[省份] = “北京” 重复上述过程,设置了很多管理区域,并在云端将不同地区的管理成员放入不同的大区角色。 这种静态的设置方法,最大的特点是: 简单 重复了很多类似的操作 没有用到 USERNAME() 函数 对于这种方案,由于很简单,可以在网上找到大量教程,不再介绍。总之:没有用 USERNAME() DAX 函数 的方案肯定是静态的,也一定不是最佳的。(当然,用了USERNAME() DAX 函数也不一定就是最佳的) 改良方案:用 USERNAME() 实现动态安全性设置 这种方法已经在此前的 PowerBI 实现不同角色看到内容不同支持动态权限管理 已经描述过,其核心在于: 通过 USERNAME() 来判断当前登录云端的用户账号 建立一个权限表 通过 DAX 表达式 来判断权限 该方案已经足够好用,但本文将做进一步改进,改进成全自动形式并且完全对用户透明的方法。 终极方案:由 Excel 权限控制表来动态控制 PowerBI 权限 这又是 OCP(开放闭合原则) 原则的充分体现,即:对扩展开放,对修改关闭。首先,先来体验下这是怎样的效果: 用户在Excel文件中,设置某些权限,完成,静待生效即可。 你在惊讶,这没PowerBI什么事啊,没错,确实没PowerBI什么事,因为复杂性全部被封装了,也

文档评论(0)

智慧IT + 关注
实名认证
内容提供者

微软售前技术专家持证人

生命在于奋斗,技术在于分享!

领域认证该用户于2023年09月10日上传了微软售前技术专家

1亿VIP精品文档

相关文档