Power BI 行级别安全性 (RLS) 在 Power BI Desktop 中定义角色和规则
发布到 Power BI 时,它还会发布角色定义。
若要定义安全角色,请执行以下步骤。
-
将数据导入 Power BI Desktop 报表,或配置 DirectQuery 连接。
备注
需要在 Analysis Services 模型中执行此操作。
-
选择“建模” 选项卡。
-
选择“管理角色” 。
-
选择“创建” 。
-
为角色提供名称。
-
选择你想要应用 DAX 规则的表。
-
例如:[实体 ID] =“值”。
备注
或者,可以使用 userprincipalname(),它始终返回采用其用户主体名称格式 username@contoso.com 的用户 。
-
创建 DAX 表达式后,你可以选择表达式框上方的“检查”以验证该表达式。
备注
在此表达式框中,即使使用的区域设置通常使用分号分隔符(例如,法语或德语),也要使用逗号分隔 DAX 函数参数。
-
选择保存。
通过使用 username() 或 userprincipalname() DAX 函数并配置好正确的关系,则可以启用 Power BI Desktop 中的动态安全。
如果你还在服务器级别实现了动态行级别安全性,则应选中此框,其中行级别安全性基于用户名或登录 ID。
保护表格 BI 语义模型技术文章。
在 Power BI Desktop 中验证角色
创建角色后,请在 Power BI Desktop 中测试角色结果。
-
选择“以角色身份查看” 。
在“以角色身份查看”中,可以看到创建的角色 。
-
报表呈现与该角色相关的数据。
-
最好提供用户主体名称 (UPN),因为 Power BI 服务和 Power BI 报表服务器使用该名称。
-
选择“确定”,报表将基于该用户所见呈现内容 。
在 Power BI Desktop 中,如果使用的是基于 DAX 表达式的动态安全,“其他用户”仅显示不同的结果 。
管理模型上的安全性
若要管理数据模型上的安全性,你需要执行以下操作。
-
为数据集选择“省略号(...)” 。
-
选择“安全” 。
如果数据集在某个组中,则只有该组的管理员才能看到安全选项。
你只能创建或修改 Power BI Desktop 中的角色。
使用成员
添加成员
添加到组织的外部。
你还可以通过角色名称或“成员”旁边的括号内的数字看到有多少成员属于该角色。
移除成员
你可以通过选择成员名称旁的 X 来移除成员。
验证 Power BI 服务中的角色
你可以通过测试角色来验证你定义的角色是否正常工作。
- 选择该角色旁边的“更多选项”(...) 。
- 选择“作为角色测试数据”
在上面的蓝色栏中,你将看到被应用的内容。
可通过选择“立即以此角色查看” 来测试其他角色或角色组合。
可选择以特定人员的身份查看数据,或选择可用角色的组合以验证它们是否工作。
选择“返回到行级安全性” 以返回到正常查看。
使用 username() 或 userprincipalname() DAX 函数
将在 Power BI 服务内使用你发布的模型。
在 Power BI Desktop 中,username() 将返回采用域用户 格式的用户,userprincipalname() 将返回采用 user@contoso.com 格式的用户。
这看起来类似于电子邮件地址。