場景1 模糊其他人的銷售數(shù)據(jù),但能看自己以及集體的真實數(shù)據(jù),并顯示排名
最終樣式:
實現(xiàn)1
1)構(gòu)建權(quán)限表
2)度量值
①先判斷是否需要隱藏數(shù)據(jù)
Measure.IsMask =
--是否有所有的權(quán)限
VAR ifAllAccess =
IF (
CONTAINS (
MaskControlTable,
MaskControlTable[User to check], USERPRINCIPALNAME(),
MaskControlTable[view salesman], "All"
),
TRUE (),
FALSE ()
)
--是否具有權(quán)限
VAR ifHasAccess =
IF (
CONTAINS ( MaskControlTable, MaskControlTable[User to check], USERPRINCIPALNAME() ,
MaskControlTable[view salesman],SELECTEDVALUE(Sheet1[Salesman])
),
TRUE (),
FALSE ()
)
--顯示小計數(shù)據(jù)
VAR totalVisible = COUNTROWS(DISTINCT(Sheet1[Salesman])) >2
RETURN
IF ( ifAllAccess || ifHasAccess || totalVisible, FALSE (), TRUE () )
②根據(jù)上述判斷捷绒,返回脫敏前/后的數(shù)據(jù)情況
Measure.Sales.Mask = IF([Measure.IsMask],"*",[Measure.sales])
Measure.Rank.Mask = IF([Measure.IsMask],"*",[Measure.Rank])
3)替換可視化對象中的measure并檢驗
之后可視化對象中的measure換成mask后的measure即可爸邢。
以其他身份查看檢驗:
脫敏前后,數(shù)據(jù)一致矗蕊。
場景2 造假數(shù)據(jù)短蜕,比如姓名為USER1、2等傻咖,薪資為隨機數(shù)字
1)構(gòu)建假數(shù)據(jù)列
eg.在PQ中構(gòu)建了假的姓名列
并且再構(gòu)造一個假的工資列(隨機數(shù))
先插入索引(?上一個步驟必須是索引朋魔,否則隨機數(shù)是同一個數(shù)字)
然后添加自定義列如圖
然后再添加一次索引,再刪除上述過程中產(chǎn)生的索引列
(上述步驟也可以在pbi里做卿操,不在pq里做)
2)應(yīng)用后警检,在dax里面應(yīng)用假數(shù)據(jù)列,并隱藏真實數(shù)據(jù)列
效果圖
其中Current User列動態(tài)獲取害淤,其他兩列就是剛造的假數(shù)據(jù)
Current User =
VAR RealName =
SELECTEDVALUE ( Dim_Employee_Salesman[SalesMan] )
VAR LoggingName =
USERPRINCIPALNAME ()
VAR MaskName =
SELECTEDVALUE ( Dim_Employee_Salesman[Masked Sales] )
RETURN
IF ( LoggingName = RealName, RealName, BLANK () )
顏色的話:
Current User.color = IF(NOT(ISBLANK([Current User])),"#FFFF00")
然后再各列應(yīng)用一下即可
其他待嘗試:
將數(shù)據(jù)脫敏與組織層級結(jié)構(gòu)結(jié)合起來
參考這個記錄
http://www.reibang.com/p/5ba3efeb3b91