疑難排解沙盒對行和列的存取

沙盒化資料 讓某些人只能存取部分資料。(這個詞來自讓孩子們在沙箱中安全玩耍的做法。)為了實作沙盒化,Metabase 執行一個查詢,根據該人員的權限,篩選表格中的列和/或選取部分欄位;然後該人員的查詢在初始查詢的結果(即在沙盒化資料上)執行。

這些文章將幫助您了解沙盒化如何運作

如果您有不同的資料存取問題,請參閱相關問題

人員看不到他們應該能看到的表格中的

沙盒是否正在依使用者屬性篩選列?

根本原因: 沙盒正在使用使用者屬性來篩選列。

步驟

這是預期行為:使用使用者屬性篩選沙盒化表格的列是沙盒化的運作方式。但如果您希望 Metabase 篩選這些列,您需要

  • 移除沙盒(這會授予所有可以存取該表格的人員完全存取所有列的權限)。前往管理員 > 權限,並變更表格的存取層級。
  • 將該人員新增至具有不同表格權限的群組(或建立一個群組)。查看資料權限指南

人員可以看到他們應該看到的

人員可能看到他們不應該看到的列有幾個原因。

這些人員是否也在具有檢視整個表格權限的群組中?

根本原因: 人員在具有檢視表格權限的群組中,因此可以看到所有列,而不僅僅是沙盒化的列。

步驟

對於有疑問的人員,檢查他們屬於哪些群組。這些群組中是否有任何群組可以存取您嘗試沙盒化的表格?如果是,請將他們從該群組中移除。請記住,每個人都是「所有使用者」群組的成員;這就是為什麼我們建議您撤銷所有使用者群組的權限,並建立新群組以選擇性地將權限套用到您的資料來源。

問題是否可透過靜態嵌入或公開分享取得?

根本原因:問題是公開的。公開問題,即使是那些使用靜態嵌入的問題,也無法沙盒化。如果有人在未登入 Metabase 的情況下檢視問題,Metabase 缺乏使用者屬性或群組資訊來篩選資料,因此它將顯示所有結果。

步驟:

當您沙盒化資料時,您應該避免公開分享。請參閱公開分享

問題是否以 SQL 撰寫?

根本原因。具有資料庫 SQL 存取權限的人員無法沙盒化。他們對資料庫的存取權限與用於將 Metabase 連接到資料庫的使用者帳戶一樣多。即使您在 Metabase 中隱藏表格,具有資料庫 SQL 存取權限的人員仍然可以查詢這些表格。這也表示 SQL 問題無法沙盒化。沙盒化專門適用於在查詢產生器中撰寫的問題(即使您可以使用 SQL 問題來建立沙盒,例如,建立排除某些欄位的表格結果集)。

步驟

  • 不要嘗試沙盒化以 SQL 撰寫的問題,因為您無法做到。

  • 如果您想要沙盒化存取權限,請避免將該人員新增至具有該表格 SQL 存取權限(或任何其他更寬鬆的表格存取權限)的群組。

  • 如果您想給予他們 SQL 存取權限,但仍然限制該人員可以看到的內容,您需要在您的資料庫中設定權限,並透過具有該受限存取權限的使用者帳戶連接該資料庫。您可以將同一個資料庫多次連接到 Metabase,每次連接都具有不同的存取層級,並將不同的連線暴露給不同的群組。但再次強調,您將無法沙盒化具有 SQL 存取權限的人員的資料。

問題是否正在從非 SQL 資料來源擷取資料?

根本原因: 資料沙盒不支援非 SQL 資料庫。

步驟

您在這裡能做的並不多:如果您需要沙盒化資料,您無法使用這些資料庫

如果使用單一登入 (SSO),使用者屬性是否正確?

根本原因:如果人員使用 SSO 登入,但預期的屬性未被儲存和提供,沙盒化將拒絕存取。

步驟:

我們關於使用 SAML 驗證使用 JWT 驗證的文件說明如何使用您的身分提供者將使用者屬性傳遞給 Metabase,這些使用者屬性可以用於沙盒化資料。

人員可以看到他們應該看到的欄位

管理員是否忘記設定沙盒?

根本原因: 管理員在設定沙盒化時未限制對基礎表格的存取。

步驟:

  1. 前往管理面板 > 相關表格的權限
  2. 檢查沙盒是否存在,以及用於沙盒化表格的問題是否排除了您不希望人員看到的欄位。

用於設定沙盒的問題是否包含欄位?

根本原因: 用於建立沙盒的問題包含他們不應該看到的欄位。

步驟:

請確保您使用 SQL 問題來建立沙盒,並且您不包含您應該排除的欄位。

如果您使用查詢產生器(即使用簡單或自訂問題)建立問題,您可能會非預期地拉入額外的欄位。您可以透過在筆記本編輯器中檢視問題並點擊檢視 SQL 按鈕,來檢查確切包含哪些欄位。但再次強調:如果您使用 SQL 問題來沙盒化資料,這個問題就會消失。

該人員是否在另一個群組中,對表格具有不同的權限層級?

根本原因: 您已使用問題沙盒化表格,但該人員也屬於對表格具有更高存取層級的群組。如果人員屬於多個群組,他們將獲得跨所有群組對資料來源的最寬鬆存取權限。

步驟:

將該人員從所有具有更高層級存取沙盒化表格的群組中移除。如果他們需要來自其他群組的一些權限,您需要建立一個新的群組,其中包含一組新的權限,該權限僅具有對相關表格的沙盒化存取權限。

人員看不到他們應該能看到的欄位

他們是否只具有對表格的沙盒化存取權限?

根本原因: 他們僅能存取表格的沙盒化版本,其中僅顯示某些欄位。

步驟:

將這些人員新增至具有檢視表格權限的群組(或建立一個新群組)。

管理員是否隱藏了表格中的欄位?

根本原因::管理員已隱藏表格中的欄位。

步驟

前往管理員 > 表格元數據並尋找表格。檢查以確保您想要顯示的欄位未被隱藏。

欄位是否重新對應以顯示來自受限表格的資訊?

根本原因: 如果人員確實具有沙盒化存取權限的表格有一個欄位,該欄位使用重新對應來顯示來自另一個表格的資訊,而人員缺乏對該表格的沙盒化存取權限,他們將無法看到該表格。例如,如果您已重新對應 ID 欄位以顯示產品名稱,但人員缺乏對產品表格的存取權限,他們將無法看到該欄位。

步驟

  1. 前往管理面板 > 相關欄位的表格元數據
  2. 如果值是從受限表格重新對應的,請變更它,以便 Metabase 將使用表格中的原始值。請參閱元數據編輯以取得更多資訊。

問題是否可透過靜態嵌入取得?

根本原因靜態嵌入預設會顯示所有結果。雖然可以使用鎖定的參數控制篩選,但靜態嵌入僅取決於包含頁面產生的權杖,而不是某人是否登入 Metabase。

步驟:

由於某人必須登入,Metabase 才能將沙盒化檢視套用到該人員,因此當您想要限制對表格的行或欄存取權限時,請避免使用靜態嵌入。

人員看不到他們應該能看到的資料

有人應該能夠在其查詢中檢視表格中的某些值,但被拒絕存取或在應該有資料的地方得到一組空的結果。

根本原因:管理員限制了對表格的存取權限。管理員通常會限制對表格的存取權限,作為沙盒化的一部分;如果限制過於嚴格(例如,「無存取權限」),則人員可能完全看不到任何資料。

步驟

  1. 透過前往管理面板並檢視相關表格的權限,檢查群組的存取層級。
  2. 如果該人員不在具有該表格存取權限的群組中,請將他們新增至具有存取權限的群組,或建立一個具有該表格存取權限的新群組,並將他們新增至該新群組。

看不到沙盒化資料的人員是否屬於多個群組?

根本原因: 我們每個表格僅允許一個沙盒:如果某人是具有不同權限的兩個或多個群組的成員,則用於判斷是否應允許存取的每個規則都會令人困惑。因此,我們僅允許一個規則。

步驟

管理員可以建立一個新群組,以精確地捕獲誰被允許存取什麼。

您有其他問題嗎?

閱讀其他版本 Metabase 的文件