[Qlik Sense] 設定使用者查看報表權限



前言, 這是進階版的說明, 省去很多基本步驟。

本人歷經千辛萬苦的測試, 終於了解如何設定「欄位」和「列」的權限

範例資料:

產品類別有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自己拉, 他們是找不到被隱藏的欄位的。





留言