授權 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"]
}
}
}
}
}