BI可視化在實(shí)施過程中,用戶最關(guān)注的點(diǎn)有哪些?
這個問題相信很多小伙伴都遇到過,或者被其他人問過,白茶總結(jié)了一下用戶比較在意的幾個點(diǎn):安全性、自助性、權(quán)限管控、易用性、兼容性、擴(kuò)展性、便捷性、反應(yīng)速度等。
本期呢,我們來聊一聊關(guān)于權(quán)限管控那些事。
PowerBI截至目前為止,可以實(shí)現(xiàn)的權(quán)限管控包含三方面:頁面權(quán)限、行權(quán)限、列權(quán)限。
那么這三者在PowerBI中是如何實(shí)現(xiàn)的呢?別急,跟著白茶的思路走。
先來看看本期的案例數(shù)據(jù):
案例數(shù)據(jù)并不是很復(fù)雜,共計(jì)三張表,分別是權(quán)限表、國家表以及案例數(shù)據(jù)。
將其導(dǎo)入到PowerBI中,我們對權(quán)限表進(jìn)行一下簡單的處理。
這是在PowerQuery中關(guān)于權(quán)限表的截圖,大家可以看到頁面權(quán)限和國家權(quán)限采用逗號分割的方式進(jìn)行存儲。
我們需要對這兩列進(jìn)行一下拆分處理。
選擇“頁面權(quán)限”,選擇“拆分列”,選擇按“分隔符拆分”。
選擇“自定義分隔符”,輸入文本間的間隔,選擇高級選項(xiàng),選擇拆分為“行”。
結(jié)果如下:
同理,根據(jù)上面的操作,我們將“行權(quán)限”進(jìn)行拆分。
這樣做的好處在于,報(bào)表正式投入使用后,用戶只需要維護(hù)Excel文件中的權(quán)限配置,PowerBI就會在后臺自動執(zhí)行拆分,進(jìn)行報(bào)表權(quán)限控制。
選擇關(guān)閉并應(yīng)用,模型如下圖。
這里注意一下,權(quán)限表不需要與其他表建立模型關(guān)系。
白茶根據(jù)案例數(shù)據(jù),簡單的做了如下幾個報(bào)表。
首頁:作為頁面權(quán)限管控使用,使用字段為權(quán)限表中的頁面權(quán)限字段。
可視化頁面:用來展示列權(quán)限。
明細(xì)頁面與地圖頁面:展示頁面權(quán)限與行權(quán)限使用。
到這里,我們的準(zhǔn)備工作基本完成,我們來看一下,三者在PowerBI中的實(shí)現(xiàn)方式。
頁面權(quán)限:
1.報(bào)表頁面命名與隱藏。
這里大家需要注意,報(bào)表頁面的名稱,一定要與Excel中的文本相對應(yīng),不然會導(dǎo)航失敗。
當(dāng)我們配置完成后,除了首頁之外的頁面,均要設(shè)置為隱藏;發(fā)布時頁面要停留在首頁。
2.頁面權(quán)限配置:選擇“管理角色”,選擇創(chuàng)建一個角色“頁面權(quán)限”,在“權(quán)限表”輸入以下代碼。
[郵箱]=USERNAME()
3.頁面設(shè)置:切片器字段選擇權(quán)限表中的“頁面權(quán)限”字段。
添加如下度量值:
頁面選擇 =
SELECTEDVALUE ( '權(quán)限表'[頁面權(quán)限] )
添加按鈕,在“操作”設(shè)置中選擇類型為“頁導(dǎo)航”,點(diǎn)擊“fx” 按鈕,選擇字段值為“頁面選擇”。
到這里,頁面權(quán)限配置完成,我們點(diǎn)擊面板上的“通過以下身份查看”。
其他用戶這里面我們可以輸入用戶的郵箱進(jìn)行測試。
我們輸入BB測試一下:
可以看到,當(dāng)我們輸入BB郵箱時,切片器會自動的根據(jù)用戶的權(quán)限進(jìn)行頁面篩選。
行權(quán)限(RLS):
行權(quán)限這個往往代表用戶所能看到的數(shù)據(jù)范圍。
1.添加如下度量值:
國家權(quán)限 =
VAR CountryAccess =
CALCULATETABLE ( VALUES ( '權(quán)限表'[行權(quán)限] ), '權(quán)限表'[郵箱] = USERNAME () )
RETURN
SELECTEDVALUE ( '國家表'[CountryZH] ) IN CountryAccess
2.在管理角色頁面添加新角色如下。
代碼如下:
[國家權(quán)限]=True()
這樣我們能看到的數(shù)據(jù)范圍,就會根據(jù)用戶的權(quán)限進(jìn)行篩選。
我們在報(bào)表頁面進(jìn)行一下簡單的查看。
列權(quán)限(OLS):
列權(quán)限管控,通常代表用戶可以看到不同的列。
在PowerBI中,有兩種方式可以實(shí)現(xiàn):
A.Tabular Editor的方式。
B.DAX的方式。
這兩種方式,A的方式其實(shí)白茶不太建議大家去使用。
舉個例子:Tabular Editor可以控制某一物理列根據(jù)用戶權(quán)限是否顯示,那么這一列,制作報(bào)表的過程中,就需要慎用,一旦使用了,某些無權(quán)限的用戶打開報(bào)表時,報(bào)表頁面就會有部分可視化圖表報(bào)錯,這對用戶的體驗(yàn)來說,非常的差。
B的方式,是白茶比較推薦大家的,將列權(quán)限寫進(jìn)DAX中,這樣更加的靈活。
模擬場景:
若用戶是“管理層”,則圖表顯示“Budget”數(shù)據(jù),若用戶是“執(zhí)行層”,則圖表顯示“Amount”數(shù)據(jù)。
編寫如下DAX:
列權(quán)限 =
VAR RoleAccess =
CALCULATETABLE ( VALUES ( '權(quán)限表'[角色] ), '權(quán)限表'[郵箱] = USERNAME () )
RETURN
IF ( RoleAccess = "管理層", SUM ( '案例數(shù)據(jù)'[Budget] ), SUM ( '案例數(shù)據(jù)'[Amount] ) )
將其放入到可視化中,我們來看一下效果。
DAX控制列權(quán)限的方式,最佳實(shí)踐是與SSAS搭配使用,這樣可以在Tabular中將列進(jìn)行隱藏,只呈現(xiàn)DAX給用戶,實(shí)現(xiàn)真正的OLS管控。
注意事項(xiàng):
1.權(quán)限控制可以在本地部署和云上Servers使用,本機(jī)免費(fèi)版僅可以通過角色進(jìn)行查看。
2.云上Servers使用最低許可證需要為Pro賬號。
3.云上Servers需要將被分享用戶添加到對應(yīng)工作區(qū),權(quán)限為“查看器”。且需要在同一組織中。
4.需要對數(shù)據(jù)集安全性進(jìn)行設(shè)置,將用戶郵箱添加到角色里面。
(白茶:文件在知識星球)
這里是白茶,一個PowerBI的初學(xué)者。
