前言, 這是進階版的說明, 省去很多基本步驟。
本人歷經千辛萬苦的測試, 終於了解如何設定「欄位」和「列」的權限
範例資料:
產品類別有Google, Oracle, IBM, SAP, 等等會設定不同的人只能看某個產品
欄位有一個總價, 等等也會故意讓某個User看不到總價的欄位
直接進入資料載入編輯器, 看權限語法:
Section Access;
Load * inline [
ACCESS, USERID, SA_LINK, OMIT
ADMIN, SHOW\QSERVICE, *,
USER, SHOW\QSERVICE, *,
USER, SHOW\MARY, *,
USER, SHOW\PETER, ORACLE,
USER, SHOW\PETER, SAP,
USER, SHOW\PETER, IBM,
USER, SHOW\IVY, SAP,
USER, SHOW\HELEN, IBM, 總價
];
Section Application;
Load * inline [
SA_LINK, 產品類別
GOOG, Google
ORACLE, Oracle
SAP, SAP
IBM, IBM
];
//只看三個欄位, 其他就略過不看
LOAD
產品類別,
產品名稱,
總價
FROM [lib://Downloads (show_qservice)/Sales_Report_V4.xlsx]
(ooxml, embedded labels, table is order);
解釋:
1.Section Access
設定哪一個使用者可以看到什麼「值」, 不能看到什麼「欄位」
2.SA_LINK
(1)SA_LINK代表能看到的「值」, 用*表示全部都能看到,
(2)SA_LINK可以寫簡稱, 例如我的值是Google, 我可以寫GOOG
(3)SA_LINK一定要大寫, 要不然永遠會失敗
(4)SA_LINK一定要給管理員帳號(例如qservice), 設定ADMIN和USER兩筆可以看到"*" (不然你會後悔, 因為設錯是連管理員自己都進不去的)
(5)一個人要看好幾個值, 就一定要設好幾列(超笨的)
3.Section Application
設定整個報表可以秀的值, 如果你在Section設定*,但SA_LINK沒有列舉「產品類別」所有的值的話, 你是管理員, 即使你有*也看不到,簡單說每個產品類別都要列出來就是了。
4.OMIT代表要隱藏, 不給使用者看到的欄位, 例如我讓Helen看不到「總價」。
5.不管你怎麼設,強烈建議把整個程式碼備份起來,因為設錯是連管理員自己都進不去的。
接下來看畫面
Peter只能看到Oracle, SAP和IBM的資料
Ivy只能看到SAP的資料
上面是欄位的「值」的設定, 接下來是「欄位」的設定
注意現在是Helen看不到總價,所以她登入後會看到這個樣子
看到這個千萬不用擔心, 先按右上角的編輯
再按複製
看到維度無效不用擔心, 就是因為權限設定的關係, Qlik Sense在Helen登入後找不到的欄位, 都會這樣顯示, 這是正確的。
只要看那個「維度無效」的欄位取消, 馬上就正常顯示了。
所以IT給USER要阻擋欄位的話, 就是報表發布出來, 碰到維度無效, 再把無效的刪掉,
或是給一個空的報表, 讓USER自己拉, 他們是找不到被隱藏的欄位的。
留言
張貼留言