授權 view 總覽

Bigtable 的授權檢視表可讓您針對資料表的部分資料授予精細的存取權,不必開放基礎資料表的存取權。

您可以使用這些檢視畫面,在多租戶表格中隔離資料,並控管讀取和寫入權限。您也可以透過程式輔助建立數千個檢視畫面,類似於其他儲存系統中的可更新檢視畫面或篩選別名。

開始之前,請務必先熟悉 Bigtable 儲存空間模型。如需設定操作說明,請參閱「建立及管理授權檢視」。

授權 view 的定義

建立授權檢視區時,請使用下列其中一個參數,指定要納入授權檢視區的資料:

  • 資料列索引鍵前置字串 - 例如,所有以 examplepetstore1# 開頭的資料列
  • 資料欄限定詞前置字元 - 例如,指定資料欄系列中,限定詞開頭為 order# 的所有資料欄
  • 資料欄限定詞 - 例如,指定資料欄系列中的 order-examplepetstore 資料欄
  • 資料列索引鍵前置字串和資料欄限定詞的組合

如果多個資料欄系列使用相同的資料欄限定詞,且您想在檢視畫面中納入所有具有該限定詞的資料欄,定義檢視畫面時,就必須分別指定資料欄限定詞和資料欄系列的每個組合。

您用來定義授權檢視區塊的資料列索引鍵和資料欄限定詞值,會視為服務資料。因此,請勿使用含有機密資訊的資料列索引鍵或資料欄限定詞值,建立授權檢視表。如要瞭解服務資料的處理方式,請參閱《Google Cloud 隱私權聲明》。

在系列或所有資料列中加入資料欄

如要確保基礎資料表新增至資料欄系列的任何資料欄,也會納入授權檢視畫面,請指定空字串 ("") 做為資料欄限定詞字首。舉例來說,定義檔案會在系列子集中加入以下內容:"qualifierPrefixes": [""]。

同樣地,如要定義包含資料表中所有資料列的授權 view,請將空字串 ("") 指定為資料列索引鍵前置字串。在定義檔案中,這會以檢視區塊子集中的 "rowPrefixes": [""] 形式撰寫。

為避免授權檢視區過於複雜,Bigtable 最多可指定 10 個不同的限定符前置字元。也就是說,授權檢視表可以指定一個資料欄系列和 10 個限定詞前置字串、10 個資料欄系列和單一限定詞前置字串,或介於兩者之間的任何組合,只要限定詞總數最多為 10 個即可。

最佳做法是每個 JSON 物件只指定一次鍵。如果您多次指定金鑰 (例如資料欄系列名稱),系統會以金鑰的最後一個項目覆寫先前項目。

定義檔案範例

本節將以 JSON 格式呈現授權檢視定義檔案的範例。

以下是授權檢視的定義檔案範例,其中包含 customer 資料欄系列的 address 資料欄,以及以 tel 開頭的資料欄 (適用於資料列索引鍵前置字串為 examplepetstore1# 的資料列)。

    {
      "subsetView":
      {
        "rowPrefixes": ["examplepetstore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

以下是授權檢視區塊的定義檔案範例,其中包含 order 資料欄系列中的 skus 資料欄,以及 customer 資料欄系列中的所有資料欄。

    {
      "subsetView": {
        "rowPrefixes": [""],
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          },
          "customer": {
            "qualifierPrefixes": [""]
          }
        }
      }
    }

以下是授權檢視的定義檔案範例,其中只包含資料列中 order 資料欄系列內 skus 資料欄的資料,且資料列的資料列索引鍵前置字元為 examplepetstore1#。

    {
      "subsetView": {
        "rowPrefixes": ["examplepetstore1#"]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          }
        }
      }
    }

以下是授權檢視的定義檔案範例,其中只包含 order 資料欄系列中的 skus 和 agents 資料欄,以及 pet_id 資料欄系列中的 dog、cat 和 bird 資料欄。

    {
      "subsetView": {
        "rowPrefixes": [""]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

後續步驟