Power BI 报表服务器中的行级别安全性 (RLS)
在 Power BI Desktop 中定义角色和规则
你可以在 Power BI Desktop 中定义角色和规则。 发布到 Power BI 时,它还会发布角色定义。
若要定义安全角色,请执行以下步骤。
将数据导入 Power BI Desktop 报表,或配置 DirectQuery 连接。
备注
不能在 Power BI Desktop 中为 Analysis Services 实时连接定义角色。 需要在 Analysis Services 模型中执行此操作。
选择“建模” 选项卡。
选择“管理角色” 。
选择“创建” 。
为角色提供名称。
选择你想要应用 DAX 规则的表。
输入 DAX 表达式。 此表达式应返回 true 或 false。 例如:[实体 ID] =“值”。
备注
可以在此表达式内使用 username() 。 请注意,username() 在 Power BI Desktop 中采用“域\用户名”格式 。 在 Power BI 服务和 Power BI 报表服务器中,采用用户的用户主体名称 (UPN) 格式。 或者,可以使用 userprincipalname(),它始终返回采用其用户主体名称格式 username@contoso.com 的用户 。
创建 DAX 表达式后,你可以选择表达式框上方的“检查”以验证该表达式。
备注
在此表达式框中,即使使用的区域设置通常使用分号分隔符(例如,法语或德语),也要使用逗号分隔 DAX 函数参数。
选择保存。
无法在 Power BI Desktop 中将用户分配到角色。 在 Power BI 服务中分配用户。 通过使用 username() 或 userprincipalname() DAX 函数并配置好正确的关系,则可以启用 Power BI Desktop 中的动态安全。
双向交叉筛选
默认情况下,行级别安全性筛选采用单向筛选器,无需考虑关系是设置为单向还是双向。 可以手动启用具有行级别安全性的双向交叉筛选器。
选择关系并选中“双向应用安全性筛选器”复选框 。
基于用户名或登录 ID 实现动态行级别安全性时,请选中此框。
若要了解更多信息,请参阅在 Power BI Desktop 中使用 DirectQuery 的双向交叉筛选和保护表格 BI 语义模型技术白皮书。
在 Power BI Desktop 中验证角色
创建角色后,请在 Power BI Desktop 中测试角色结果。
选择“以角色身份查看” 。
在“以角色身份查看”中,可以看到创建的角色 。
选择创建的角色 >“确定”,应用该角色 。 报表呈现与该角色相关的数据。
你还可以选择其他用户,并提供给定用户 。 最好提供用户主体名称 (UPN),因为 Power BI 服务和 Power BI 报表服务器使用该名称。
选择“确定”,报表将基于该用户所见呈现内容 。
在 Power BI Desktop 中,如果使用的是基于 DAX 表达式的动态安全,“其他用户”仅显示不同的结果 。
向角色添加成员
在 Power BI 报表服务器中保存报表后,便可在服务器上管理安全性并添加或删除成员。 只有具有报表的发布者或内容管理器权限的用户才能使用行级别安全性选项,并且该选项不会呈灰色。
如果报表没有所需角色,则需要在 Power BI Desktop 中打开报表,添加或修改角色,然后将其保存回 Power BI 报表服务器。
在 Power BI Desktop 中,将报表保存到 Power BI 报表服务器。 需要使用更适合 Power BI 报表服务器的 Power BI Desktop 版本。
在 Power BI 报表服务中,请选择报表旁边的省略号(…) 。
选择“管理” > “行级别安全性” 。
在“行级别安全性”页上,将成员添加到在 Power BI Desktop 中创建的角色 。
若要添加成员,请选择“添加成员” 。
在文本框中以用户名格式(域\用户)输入用户或组,并选择要为其分配的角色。 成员需在你的组织内。
根据配置 Active Directory 的方式,在此处输入“用户主体名称”同样有效。 在此情况下,报表服务器会在列表中显示相应用户名。
单击“确定”进行应用 。
若要删除成员,请选择成员名称旁边的框并选择“删除” 。 一次可以删除多个成员。
username() 和 userprincipalname()
可在数据集内利用 DAX 函数 username() 或 userprincipalname()。 可在 Power BI Desktop 中的表达式内使用它们。 发布模型时,Power BI 报表服务器将使用它们。
在 Power BI Desktop 中,username() 返回采用域\用户格式的用户,userprincipalname() 返回采用 user@contoso.com 格式的用户。
在 Power BI Desktop 中,username() 和 userprincipalname() 均返回用户的“用户主体名称 (UPN)”,类似于电子邮件地址。
如果在 Power BI 报表服务器中使用自定义身份验证,则会返回为用户设置的用户名格式。
限制
以下是 Power BI 模型上有关行级别安全性的当前限制。
使用 username() DAX 函数生成报表的用户现在将注意到新的行为,该行为会返回用户主体名称 (UPN),但配合使用 DirectQuery 和集成安全性时除外。 由于该场景中不考虑 RLS,因此该场景中的行为保持不变。
只能在使用 Power BI Desktop 创建的数据集上定义 RLS。 若要为使用 Excel 创建的数据集启用 RLS,首先必须将你的文件转换为 Power BI Desktop (PBIX) 文件。 了解关于 Excel 文件的详细信息。
只支持使用已存储凭据的提取、转换、加载 (ETL) 和 DirectQuery 连接。 连接到分析服务的实时连接和使用集成身份验证的 DirectQuery 连接均在底层数据源中进行处理。
如果配合使用集成安全性和 DirectQuery,用户可能会注意到:
- 已禁用 RLS,且已返回所有数据。
- 用户不能更新其角色分配,并且在“RLS 管理”页上收到错误。
- 对于 DAX 用户名函数,仍继续按“域\用户”接收用户名。
在 Power BI 报表服务器中,报表作者无权查看报表数据,除非他们在上传报表后为自己分配了相应角色。
Power BI 报表服务器中的行级别安全性 (RLS)的更多相关文章
- 微软Power BI报表服务器学习总览
今天,微软宣布了8月更新Power BI Report Server!此版本包含一些新功能,包括一些备受期待的项目,如报表主题,条件格式改进和报表页面工具提示. 报告 报告主题 用于触发操作的按钮 组 ...
- Power BI 行级别安全性 (RLS)
在 Power BI Desktop 中定义角色和规则 你可以在 Power BI Desktop 中定义角色和规则. 发布到 Power BI 时,它还会发布角色定义. 若要定义安全角色,请执行以下 ...
- 安装 Power BI 报表服务器
开始之前 建议在安装 Power BI 报表服务器之前先查看安装 Power BI 报表服务器所要满足的硬件和软件要求. Power BI 报表服务器产品密钥 Power BI Premium 如果已 ...
- Power BI 报表服务器发布
Power BI 报表服务器让你的用户能够访问数据.获取见解,并能够使用 SQL 报表服务器服务的企业报告功能 - 这一切都在现代本地解决方案中完成.让用户能够直观浏览数据并快速发现模式,以便更快作出 ...
- POWER BI报表服务器混合云初了解
Power BI报表服务器 购买Power BI Premium时,你可以获取2个产品,一个是Power BI Service另外一个是Power BI Report Server. Power BI ...
- 133_Power BI 报表服务器2020年1月版本更新亮点
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一个很长的春节假期后,居家办公. 升级了Power BI 报表服务器(2020年1月版本). 具体的升级内容见官网博客: ...
- 试图使用未在此报表服务器中注册或此版 Reporting Services 不支持的数据扩展插件“Devart.Data.PostgreSql”
数据源用的是Postgresql 我在Deploy Report的时候出现这条ErrorMessage Error 2 试图使用未在此报表服务器中注册或此版 Reporting Services 不支 ...
- Power BI行级别安全性(数据权限管理)
自从PowerBI 的DAX 函数 支持username() 或 userprincipalname()的函数后,我们就可以在Power BI中实现根据用户的行级数据权限的控制. username() ...
- 在Power BI报表和仪表板中显示刷新日期\时间
有人最近问我:“如何在报告和仪表板中显示最后刷新数据的日期和时间?”这里有两个简单的技巧在这分享下,也许可以帮助到你. 显示上次刷新日期\时间 要想显示刷新的日期和时间,我们需要在模型本身中存储时间刷 ...
随机推荐
- 介绍 14 个 JavaScript 的框架和库
Javascript 得到了众多的技术领导者的拥护和支持,其中一位就是 WordPress 的作者 Matt Mullenweg , 他表示 WordPress 开发者 应该学习 JavaScript ...
- L1-049 天梯赛座位分配 (20 分)
L1-049 天梯赛座位分配 (20 分)(Java解法) 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所 ...
- LeetCode 20. 有效的括号(Valid Parentheses )
题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字 ...
- ArcGIS Python 获得坐标
import arcpy infc = arcpy.GetParameterAsText(0) # Identify the geometry field # desc = arcpy.Describ ...
- 【Makefile】Makefile中的常用函数简介
1. subst函数 格式:$(subst <from>, <to>, <text>)功能:把字串<text>中的<from>字符串替换成& ...
- 语法错误 : 缺少“;”(在“<”的前面)
该错误有可能是由错误所指行“<”附近的某个类型忘记#include <>所造成的
- egg源码浅析一npm init egg --type=simple
要egg文档最开始的时候,有这样的几条命令: 我们推荐直接使用脚手架,只需几条简单指令,即可快速生成项目: $ mkdir egg-example && cd egg-example ...
- 质量保障&&质量体系建设
一.质量保障 先引用一段 百度百科 上对软件质量保障的解释:软件质量保障是建立一套有计划,系统的方法,来向管理层保证拟定出的标准.步骤.实践和方法能够正确地被项目所采用.软件质量保证的目的是使软件过程 ...
- mysql 如何给大表添加字段
1. 能不加字段就不要加, 能不修改字段就不要修改, 能不删除字段就不要删除, 等等为什么要删除字段呢? 如果没事,不要蛋疼的找事. 实际上,我们那次更新失败后, 我们并没有增加那个字段, 然后我们一 ...
- VS2019 + Qt5.13 配置
在安装完VS2019后,再安装Qt5.13选择安装msvc2017模块,再安装qt-vsaddin插件,我选的是2.4版本,反正安装最新的也不会错. 安装成功后,新建项目,发现问题 Entry Poi ...