2017-05-04 51 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()函數來檢查授權來進行擴展,但是這聽起來像您與個人應該能夠進行一對一的關係看到。