基本沙箱:設定列級權限

了解如何根據人員的使用者屬性設定列級權限。

Metabase 的 Pro 和 Enterprise 版本包含資料沙箱,這項功能可讓您精細控制人員可以在問題中看到和使用的列與欄。

「沙箱」通常指的是用於保護或隔離系統一部分的隔離環境。 Metabase 以類似的方式使用「沙箱」一詞,只是在此案例中,隔離環境指的是「資料環境」。 當管理員授予群組對表格的沙箱存取權時,他們只能看到該沙箱中包含的列和欄。

在本文中,我們將逐步說明如何使用 Metabase 隨附的範例資料庫設定基本沙箱的範例。 基本沙箱限制對列的存取;如需欄級權限,請參閱自訂資料沙箱

在您沙箱之前

您應該備份您的 Metabase 應用程式資料。 此外,您可能需要查看我們的資料權限指南集合權限指南和我們的權限概觀,以更了解沙箱如何融入 Metabase 的權限系統。

我們的場景

我們的目標是確保客戶 Brown 女士只能看到與她的帳戶相關的表格列。

建立客戶群組

Metabase 使用群組來組織權限,因此我們首先需要建立一個群組,我們將其命名為「客戶」。 若要執行此操作,請按一下導覽側邊欄中的齒輪圖示,然後選取 > 管理設定 > 人員 > 群組。 然後選擇建立群組

The Groups page after creating our Customers group.

建立帳戶並新增屬性

在我們可以為「客戶」群組設定沙箱權限之前,我們需要為 Brown 女士建立一個帳戶,並將一個屬性新增至她的帳戶。 從管理設定 > 人員標籤,我們將按一下邀請人員,填寫姓名和電子郵件欄位,並將她新增至「客戶」群組。

這是沙箱最重要的部分:我們將為我們的新人員 Brown 女士新增一個屬性,金鑰為 user_id,值為 20

Adding Ms. Brown to the Customers group, and giving her an attribute: user_id: 20.

user_id 金鑰沒有什麼神奇之處:它只是一個變數。 我們可以使用我們選擇的任何金鑰值組新增屬性。 我們想要做的是,針對我們要沙箱的相關表格,使用對應於欄的金鑰,以及對應於列值的值。 這個想法是,我們將把這個屬性連結到表格中的欄,以判斷 Brown 女士可以檢視哪些列。

為了本逐步解說的目的,我們正在手動設定此屬性,但我們可以使用單一登入服務 (SSO),例如 SAML,以程式設計方式將屬性指派給使用者並進行同步。

授予群組沙箱存取權

現在我們有了我們的群組,以及至少一位具有屬性的該群組成員 (Brown 女士),我們已準備好前往資料權限頁面,以授予「客戶」群組對範例資料庫中表格的沙箱存取權。

在左側邊欄中,我們將按一下資料庫範例資料庫。 若要授予「客戶」群組對「訂單」表格的沙箱檢視資料存取權,我們只需按一下「訂單」表格,導覽至「客戶」列,然後在檢視資料欄中,從下拉式選單中選取沙箱

Granting sandboxed access to the Customer group for the Orders table.

沙箱模式方塊會詢問「您要如何為此群組中的使用者篩選此表格?」,並顯示兩個選項

  • 依表格中的欄篩選。
  • 使用已儲存的問題為此表格建立自訂檢視。

目前,我們將設定保留為依表格中的欄篩選 — 使用已儲存的問題是更進階的功能,我們在此處討論它。

The sandboxing modal.

針對欄,我們將選取「訂單」表格的 使用者 ID 欄,並將其連線到我們指派給人員的屬性下拉式選單中的 user_id 屬性。

Metabase 將為我們提供我們所做變更的摘要:「客戶中的使用者可以檢視 User ID 欄位等於 user_id 的「訂單」表格中的列。」 讓我們儲存變更,並針對「人員」表格重複此程序。

  • 授予「客戶」群組對「人員」表格的沙箱存取權。
  • 選取依欄篩選選項。
  • 選取「人員」表格的 ID 欄,並將其連線到 user_id 屬性。
  • 檢閱摘要並按一下儲存

最後,我們需要按一下儲存變更按鈕以確認我們的變更。

以 Brown 女士看到的角度檢查設定

現在讓我們測試我們的設定,以確認我們的客戶 Brown 女士只能看到與她的使用者 ID 連線的訂單。 我們將在無痕瀏覽器視窗中開啟我們的 Metabase 執行個體,並以 Brown 女士身分登入。 當我們導覽至「訂單」表格時,Brown 女士只會看到她下的訂單 (使用者 ID 20)。

Ms. Brown will only see orders associated with her ID: 20.

透過沙箱化表格,我們可以建立單一問題或儀表板,並確信具有該資料沙箱存取權的人員將只能看到與其帳戶相關聯的資料。

如果我們將沙箱與互動式嵌入結合使用,我們可以將這些儀表板嵌入到我們的應用程式中,並使用 SSO 將屬性傳遞至嵌入式 Metabase 執行個體,讓我們能夠為嵌入在我們應用程式中的問題和儀表板提供沙箱存取權。 若要深入了解,請參閱如何在您的應用程式中嵌入 Metabase 以提供多租戶自助式分析

沙箱限制

  • 沙箱僅適用於 SQL 資料庫。
  • 每位使用者每個表格只能有一個沙箱,因此只能將使用者新增至具有表格沙箱存取權的單一群組。
  • 如果群組具有對資料庫的 SQL 查詢存取權,則沙箱無法阻止該群組中的人員檢視這些表格中的資料。
  • 依此類推,如果該群組中的人員可以存取以 SQL 撰寫的問題,則這些問題不會意識到沙箱存取權,並且會向該群組中的人員顯示所有結果,而不僅僅是該群組沙箱中的結果。

深入了解資料沙箱的限制

進一步閱讀

下一步:自訂沙箱:限制欄位存取權

了解如何使用已儲存的 SQL 查詢向不同人員顯示特定列和欄。

下一篇文章