不通過行級安全性,又如何解決Power BI數據屏蔽


​不通過行級安全性,我們又如何解決Power BI數據屏蔽這一現實問題呢?

 

 

到目前為止,我們都知道可以通過行級安全性方法限制對數據的訪問。但是,我最近遇到的一個新的問題是:“銷售員希望在銷售報表看到彼此的銷售信息,但是又不能看到其他人的名字!那我們如何在Power BI中做到這一點?”

 

以上操作與行級安全性方法有所不同。在這種情況下,我們希望用戶看到其他人的信息,甚至知道他們的銷售量,但是我們不希望他們看到他的名字。

這比行級安全性更像是數據屏蔽的一種解決方法。以下我們會通過這篇文章與大家分享這個方法。


數據關系

我使用的是帶有兩個表的非常簡單的數據集;銷售員工信息表和銷售信息表;

 

 


這不是行級安全性

在這里,我重申一遍,這不是行級安全性。在這種情況下,我們顯示了整個數據行。但是,我們對部分數據做了隱藏處理,因為它們是敏感列。


隱藏敏感列

采取這種方法的第一步是隱藏用戶不能看到的列。例如; 用戶名稱、電子郵件、地址、電話號碼等。

在我的這個例子中;我將下面的所有列都做了隱藏處理。

 

 


使用MaskedUserName列創建可視化

現在有了maskedUserName列,我們可以使用它來創建可視化。由於敏感信息列是隱藏的,因此用戶無論如何都無法看到它們。

 

 

 

 

如圖所示,當用戶登錄到報表時,他/她們不知道被屏蔽的用戶是誰(如菠蘿、草莓和大西瓜)。從用戶的角度來看這些細節是完全隱藏的。但是,用戶在不知道是誰的情況下卻又可以看到他們的銷售金額。

 

 


當前用戶

到這,大家肯定想了解:怎么做到啊?現在,我們說下實現的具體的方法:通過使用UserPrincipalName函數的度量,我們可以輕松實現這一目標;

CurrentUser = if(

sum(SalesInfo[Number])&&

SELECTEDVALUE('SaleUserInfos'[Email])=USERPRINCIPALNAME(),

SELECTEDVALUE('SaleUserInfos'[Name]))

 

這意味着僅顯示已登錄用戶的用戶名。

 

 

你可以看到,當前我根據當前用戶進行了一些顏色格式化,我做了表列的背景色;

BackgroundColor = if(not ISBLANK([CurrentUser]),"light green","light grey")

 


無需行級安全配置

到這里,你也可以發現,實現這個效果,我並沒有通過行級安全性配置。而且不用創建任何角色,也無需將用戶分配給這些角色。因為這不是行級安全性。但此方法只是從用戶的角度隱藏敏感信息而已。


最佳實踐

對於實現,我建議用合適的數據體系結構。在這種情況下,由於某些用戶可能是可以使用Power BI Desktop創建報表的數據可視化工具,因此我建議你使用共享數據集的方式。如果你采用這種方法,即使用戶Power BI Desktop也只能看到隱藏后的數據。


總結

數據屏蔽不是行級安全性。它只是通過我們用於一些安全邏輯僅僅來顯示部分非敏感信息。

 

 

推薦閱讀

馬上報名 | "玩轉數據,智啟未來"Power BI Workshop與您相約618

Power BI 5月產品功能更新培訓 —— 視頻上線

【2020】Power BI 5月產品功能更新

Power BI中簡單而強大的相對日期切片器

Power BI表格編輯器

 

技術交流

1.Power BI免費下載:http://www.yeacer.com/

    Microsoft Power BI Desktop中文最新版:下載地址

2.歡迎加入的Power BI技術群,目前正在學習階段,有興趣的朋友可以一起學習討論。 

   Power Data技術交流群:702966126 (驗證注明:博客園Power BI) 

   更多精彩內容請關注微信公眾號:悅策PowerBI          


如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM