2017-05-04 47 views
1

我必须在网站上嵌入PowerBI记分卡。我在PowerBI Desktop中设置了记分卡,它看起来很好;记分卡的限制器过滤员工姓名。如何使用PowerBI的行级安全在网站上实施员工筛选?

我希望访问公司网站的员工只能在记分卡中查看他们的数据,换句话说,他们在网站上的存在会自动过滤记分卡以仅显示他们的统计数据。幸运的是,他们必须通过提供Windows凭据登录公司网站。

我不知道如何去做这件事。我明白,我必须使用“建模”选项卡上的“安全”部分,我已经(成功)通过使用下面的代码创建了一个明确的角色为一个观众:

'Table1'[Employee Name] = "John Smith" 

当然,这只有当我点击“查看角色”时才会反映John Smith的统计信息。我认为为每一位员工明确编写DAX代码段是不现实的,因为我的公司拥有3000多名员工。

任何人都可以分享任何指示,或导致我一些?

预先感谢您。

回答

1

虽然我们在Power BI服务中查看了我们的仪表板,但我必须处理类似的问题,因此这是我熟悉的身份验证。这种形式的动态行级别安全性的基础是,所写入的表达式针对所指示的表中的每一行评估为True或False。

如果您的用户已登录,您将能够使用USERPRINCIPALNAME()确定身份。这是他们用来登录服务的电子邮件地址。

由于您正在显示特定于该用户的数据,因此您可能已经在自己的数据中包含了他们的电子邮件。如果是这样的话,它在你的表只是另一场您的验证行看起来是这样的:

'Table1'[Email] = USERPRINCIPALNAME() 

表达的左侧是指你所引用的列,而右侧将提供经过身份验证的用户的名称。如果您的现有数据中没有可用的数据,则可以使用DAX表达式从电子邮件列表及其关联名称中查找员工姓名。

在这种情况下,您只有一个每个人都需要分配的角色,而上面的逻辑将确定他们可以看到哪些行。

这是一个简单的例子,每个员工只能看到他们自己的数据。该模型可以通过创建具有用户及其相关记录的“安全表”,然后利用CONTAINS()函数来检查授权来进行扩展,但是这听起来像您与个人应该能够进行一对一的关系看到。