我有一份关于 Power bi 报告服务器的报告。该报告中有一个表格视觉效果。在工作中,我的老板希望报表内此表格视觉中的工资和手机号码列仅对 2 个用户可见。其余用户应该看到该列中的值为 0。我想这样做。我使用以下 dax 函数创建了计算列和度量。然后我使用“查看为角色”测试了不同用户将在 Power BI Desktop 中看到的内容,因为但是在保存并刷新报告后,所有用户都将该列视为 0。但是,有幸看到这个专栏的应该已经看到了这个专栏的数据我这里不能分享数据,我给大家展示一个非常适合我工作情况的例子。
假设你有下面的数据表,我们称这个表为数据表:
名称敏感值 爱丽丝梦游仙境 56 鲍勃·弗罗斯特 32 无名氏 78 玛丽·安 36 特德·史密斯 51
对于特权用户,您希望在 Power BI 中按原样显示敏感值,而对于非特权用户,您希望显示如下值列中所示的值
name sensitive_value value
Alice Wonderland 0
Bob Frost 32 0
John Doe 78 0
Mary Ann 36 0
Ted Smith 51 0
我已经尝试过这种方式来实现这一目标。
值=0
然后我创建了名为 usertable 的表,其中包含可以按原样查看sensitive_value 的用户:
然后我创建了测量来显示sensitive_value或基于username()的值:
显示值= var showvalue = IF(CONTAINS(usertable,usertable[用户名], USERNAME()), 1, 0) 返回 if(showvalue = 1, max('datatable'[sensitive_value]), max('datatable'[value]))
我测试了不同网络用户的视图按钮。I 在编辑过程中一切正常。 但我保存了此报告的更改。所有用户都看到此列为 0 。
但是有些用户(我为以下用户创建的表中的用户)有权查看该列的实际值
我该如何处理这个问题?
在 Power BI Desktop 中,
USERNAME()
返回 domain\username
格式,但发布后将更改为 UPN 电子邮件地址。
建议您切换到
USERPRINCIPALNAME()
,它会在桌面和服务中返回相同的值。