跳到主要內容
使用區段存取管理安全性

在此頁面

使用區段存取管理安全性

您可以在資料載入指令碼中使用區段存取,以管理列層級資料存取。使用此方法,可以使用單一檔案來管理使用者或使用者群組的資料。 Qlik Sense 使用區段存取中的資訊進行列層級授權,並動態減少資料,讓使用者只會看見他們有權看見的資料。

這個安全性內建於檔案本身,因此下載的檔案在某種程度上也能獲得保護。不過,如果安全性需求高,則應該避免下載檔案與離線使用。 只應透過 Qlik Sense 伺服器發佈檔案。因為所有資料都保存在一個檔案中,這個檔案的大小可能會非常的大。

必須先發佈應用程式,才能套用區段存取控制。重新載入應用程式將不會套用任何新的或已變更的區段存取指令碼。

警告備註若要避免公開限制的資料,請使用區段存取設定移除所有附加檔案,然後再發佈應用程式。發佈應用程式時會納入附加的檔案。如果複製發佈的應用程式,則附加檔案會包括在副本中。然而,如果區段存取限制已套用至附加的資料檔案中,複製檔案時將不會保留區段存取設定,因此複製應用程式的使用者將可以查看附加檔案中的所有資料。
警告備註快照會根據取得快照之使用者的存取權來顯示資料,然後快照可以在故事中進行共用。然而,當使用者從故事返回視覺化以查看應用程式中的即時資料時,他們會受到自己存取權的限制。
警告備註若您使用區段存取或處理敏感資料,請勿將色彩指派至主維度值,因為這可能會透過色彩設定暴露值。

指令碼中的區段

列層級存取控制是透過一個或數個安全性表格來管理,而安全性表格的載入方式與通常載入資料的方式相同。因此就可以將這些表格儲存在標準資料庫或試算表中。管理安全性表格的指令碼陳述式會在授權區段中指定,而這個在指令碼中的存取區段是由 Section Access 陳述式來起始。

如果在指令碼中定義授權區段,必須將載入應用程式資料的指令碼部分放置於不同區段,且由 Section Application 陳述式來起始。

Example:  

Section Access;

AuthorizationTable:

Load ACCESS, USERID, REGION From ... ;

 

Section Application;

Load ... From ... ;

區段存取系統欄位

存取層級會指派給區段存取內,載入的一或多個表格中的使用者。這些表格可包含數個不同的使用者特定系統欄位,通常會是 USERID,以及定義存取層級的欄位 ACCESS。所有區段存取系統欄位將會用於驗證或授權。以下描述全套的區段存取系統欄位。

ACCESS

定義對應使用者應擁有的存取權。

可授權指定的使用者或使用者群組存取 Qlik Sense 應用程式。在安全性表格中,可將使用者指派為 ADMINUSER 存取層級。如果未指派有效的存取層級,則使用者無法開啟應用程式。

具有 ADMIN 權限者可以存取應用程式中的所有資料。具有 USER 權限者只能依照安全性表格中的定義存取資料。

若區段存取用於範本應用程式中的 on-demand 應用程式產生 (ODAG) 狀況, INTERNAL\SA_API 使用者必須納入為區段存取表格中的 ADMIN。例如︰

Section Access; LOAD * inline [ ACCESS, USERID ADMIN, INTERNAL\SA_API ];

NTNAME

欄位應包含對應至 Windows NT 網域使用者名稱或群組名稱的字串。若使用其他驗證系統,應包含驗證使用者的名稱。

Qlik Sense 將從作業系統擷取登入資訊,並將其與此欄位中的值比較。

USERID

包含對應於 Qlik Sense 使用者名稱的字串。Qlik Sense 將從 Proxy 獲得登入資訊,並將其與此欄位中的值比較。

資訊備註 USERIDNTNAME 都使用相同的驗證資訊,因此不必在授權表格中相同的列上檢查兩者。兩個欄位之間的差異是 NTNAME 也會檢查群組。

USER.EMAIL

目前不受支援,將在 Qlik Sense 中僅符合萬用字元。

GROUP

包含對應於 Qlik Sense 中群組的字串。Qlik Sense 將解析 Proxy 針對此群組提供的使用者。

資訊備註使用群組減少資料並想要存取 Qlik Management Console 時,仍需要 INTERNAL\SA_SCHEDULER 帳戶使用者。

SERIAL

包含對應於平台的字串。若欄位包含字串 ‘QLIKSENSE’ 或萬用字元 ‘*’,可根據授權表格中的其他欄位授予存取權限。

資訊備註若欄位 SERIAL 包含授權號碼,區段存取列將會拒絕存取文件。此設定僅在 QlikView 中有效。

OMIT

包含針對此特定使用者要省略的欄位名稱。可使用萬用字元,且欄位可為空白。可以使用子欄位方便作業。

資訊備註建議您不要在索引鍵欄位上套用 OMIT。被忽略的索引鍵欄位可見於資料模型檢視器中,但內容無法使用,這可能會讓使用者感到困擾。此外,在用於視覺化的欄位上套用 OMIT 會對無法存取省略欄位的使用者造成不完整的視覺化。

Qlik Sense 比較使用者與使用者 ID 並針對表格中的群組解決使用者。 如果使用者屬於允許存取的群組,或者使用者符合條件,則他們可以存取應用程式。

資訊備註

如果您透過設定區段存取將自己鎖在應用程式之外,您可以在沒有資料的情況下開啟應用程式,並在資料載入指令碼中編輯存取區段。要執行這項操作,您必須擁有編輯和載入資料載入指令碼的權限。

如需詳細資訊,請參閱 開啟沒有資料的應用程式

由於在存取區段中也使用相同的內部邏輯 (為 Qlik Sense 的標誌),故可將安全性欄位置於不同的表格中。區段存取中 LOADSELECT 陳述式列出的所有欄位都必須為大寫。資料庫中若有任何欄位名稱包含小寫字母,應先使用 Upper 函數轉換為大寫,才能由 LOADSELECT 陳述式讀取欄位。

如需詳細資訊,請參閱Upper - 指令碼與圖表函數

萬用字元 (*) 會解譯為此欄位的所有 (已列出的) 值,也就是已列在此表格中其他地方的值。如果用於指令碼的存取區段中所載入表格內的其中一個系統欄位 (USERID、GROUP),則會解譯為此欄位的所有 (含未列出) 可能值。

資訊備註從 QVD 檔案載入資料時,Upper 函數將會減慢載入速度。
資訊備註如果您已啟用了區段存取,就無法使用這裡列出的區段存取系統欄位名稱作為您資料模型中的欄位名稱。

Example:

在此範例中,只有財務群組中的使用者可以開啟文件。

存取文件
存取 群組
使用者 財務

動態資料減少

Qlik Sense 支援動態資料減少,根據區段存取登入,可以向使用者隱藏應用程式中的某些資料:

  • 可以透過使用系統欄位 OMIT 隱藏欄位 (資料行)。
  • 將區段存取資料與實際資料連結即可隱藏記錄 (列):將一或多個具有通用名稱的欄位放置在區段存取與區段應用中,即可控制要顯示或排除的值選項。使用者登入後,Qlik Sense 會將區段存取中欄位的選項與欄位名稱完全相同之區段應用的任何欄位配對 (欄位名稱必須為大寫)。選取項目後,Qlik Sense 會向使用者永久隱藏這些選項排除的所有資料。
資訊備註上述傳輸中使用的所有欄位名稱與這些欄位的所有欄位值都必須為大寫,因為在區段存取中所有欄位名稱與欄位值預設都會轉換為大寫。
資訊備註若您想要在 Qlik Management Console 任務中啟用載入指令碼,則需要具有 ADMIN 存取權限的 INTERNAL\SA_SCHEDULER 帳戶使用者。

Example: 以使用者 ID 為基礎的資料減少

Section Access; LOAD * inline [ ACCESS, USERID, REDUCTION, OMIT USER, AD_DOMAIN\ADMIN, *, USER, AD_DOMAIN\A, 1, USER, AD_DOMAIN\B, 2, NUM USER, AD_DOMAIN\C, 3, ALPHA ADMIN, INTERNAL\SA_SCHEDULER, *, ]; section application; T1: LOAD *, NUM AS REDUCTION; LOAD Chr( RecNo()+ord('A')-1) AS ALPHA, RecNo() AS NUM AUTOGENERATE 3;

REDUCTION (大寫) 欄位現在會同時出現在區段存取與區段應用 (所有欄位值也同樣為大寫) 中。這兩個欄位通常會不同且各自分開,但是使用區段存取,這些欄位將互相連結,並減少向使用者顯示的記錄數。

區段存取中的 OMIT 欄位可定義應該向使用者隱藏的欄位。

結果將是:

  • 使用者 ADMIN 可以查看所有欄位,但當 REDUCTION 為 1、2 或 3 時,只能看到其他使用者在此範例中看到的那些記錄。
  • 使用者 A 可看見所有欄位,但只能看見關聯到 REDUCTION=1 的記錄。
  • 使用者 B 可看見除了 NUM 之外的所有欄位,且只能看見關聯到 REDUCTION=2 的記錄。
  • 使用者 C 可看見除了 ALPHA 之外的所有欄位,且只能看見關聯到 REDUCTION=3 的記錄。

Example: 以使用者群組為基礎的資料減少

Section Access; LOAD * inline [ ACCESS, USERID, GROUP, REDUCTION, OMIT USER, *, ADMIN, *, USER, *, A, 1, USER, *, B, 2, NUM USER, *, C, 3, ALPHA USER, *, GROUP1, 3, ADMIN, INTERNAL\SA_SCHEDULER, *, *, ]; section application; T1: LOAD *, NUM AS REDUCTION; LOAD Chr( RecNo()+ord('A')-1) AS ALPHA, RecNo() AS NUM AUTOGENERATE 3;

結果將是:

  • 屬於 ADMIN 群組的使用者可以看見所有資料和所有欄位。
  • 屬於 A 群組的使用者可以在所有欄位看見關聯到 REDUCTION=1 的資料。
  • 屬於 B 群組的使用者可以看見關聯到 REDUCTION=2 的資料,但無法在 NUM 欄位中看見
  • 屬於 C 群組的使用者可以看見關聯到 REDUCTION=3 的資料,但無法在 ALPHA 欄位中看見
  • 屬於 GROUP1 群組的使用者可以在所有欄位看見關聯到 REDUCTION=3 的資料
  • 使用者 INTERNAL\SA_SCHEDULER 不屬於任何群組,但可以在所有欄位中看見所有資料。

    資訊備註

    此列中的萬用字元、字元 * 僅指區段存取表格內的所有值。若有區段應用程式中的值無法用於區段存取中的 REDUCTION 欄位,則這些值會減少。

繼承的存取限制

二進位載入將會使新的 Qlik Sense 應用程式繼承存取限制。