Ringkasan tampilan yang diotorisasi
Tampilan yang diizinkan dari tabel Bigtable memberi Anda kontrol akses terperinci atas data Bigtable Anda. Tampilan yang diotorisasi adalah subset tabel yang Anda konfigurasi untuk menyertakan data tabel tertentu. Kemudian, Anda memberikan akses ke tampilan yang diotorisasi secara terpisah dari akses ke tabel.
Tampilan yang diizinkan berguna untuk tabel multi-tenant atau situasi lain saat tabel Anda berisi data yang tidak boleh diakses oleh semua pengguna. Tidak seperti tampilan di layanan database lainnya, tampilan resmi Bigtable dapat digunakan untuk mengontrol akses baca dan tulis. Anda dapat membuat ribuan tampilan resmi secara terprogram, dengan cara yang sama seperti yang dapat Anda lakukan dengan apa yang disebut sistem penyimpanan lain sebagai "tampilan yang dapat diupdate" atau "alias yang difilter".
Dokumen ini menjelaskan tampilan yang diotorisasi dan memberikan contoh file definisi. Sebelum membaca dokumen ini, Anda harus memahami model penyimpanan Bigtable. Untuk mengetahui petunjuknya, lihat Membuat dan mengelola tampilan yang diotorisasi.
Definisi tampilan yang diotorisasi
Saat membuat tampilan yang diotorisasi, Anda menentukannya dengan menentukan data yang akan disertakan dalam tampilan yang diotorisasi menggunakan salah satu parameter berikut:
- Awalan kunci baris - misalnya, semua baris yang dimulai dengan
examplepetstore1|
- Awalan penentu kolom - misalnya, semua kolom yang penentunya diawali dengan
order#
dalam grup kolom yang ditentukan - Penentu kolom - misalnya, hanya kolom
order-examplepetstore
dalam grup kolom yang ditentukan - Kombinasi awalan kunci baris dan penentu kolom
Jika kualifikasi kolom yang sama digunakan di beberapa family kolom dan Anda ingin menyertakan semua kolom dengan kualifikasi tersebut dalam tampilan, Anda harus menentukan setiap kombinasi kualifikasi kolom dan family kolom secara terpisah saat Anda menentukan tampilan.
Nilai kunci baris dan penentu kolom yang Anda gunakan untuk menentukan tampilan yang diizinkan diperlakukan sebagai data layanan. Oleh karena itu, jangan membuat tampilan yang diizinkan menggunakan nilai kunci baris atau penentu kolom yang berisi informasi sensitif. Untuk informasi tentang cara penanganan data layanan, lihat Pemberitahuan PrivasiGoogle Cloud .
Pencantuman kolom dalam keluarga atau semua baris
Jika Anda ingin memastikan bahwa setiap kolom yang ditambahkan ke grup kolom dalam tabel pokok juga disertakan dalam tampilan yang diizinkan, Anda harus menentukan string kosong (""
) sebagai awalan penentu kolom. Misalnya, file definisi akan menyertakan ini dalam subset keluarga:
"qualifierPrefixes": [""]
.
Demikian pula, jika Anda ingin menentukan tampilan resmi yang menyertakan semua
baris dalam tabel, tentukan string kosong (""
) sebagai awalan kunci baris. Dalam file definisi, ini ditulis sebagai "rowPrefixes": [""]
dalam subset tampilan.
Untuk menghindari tampilan resmi yang terlalu rumit, Bigtable memungkinkan Anda menentukan maksimal 10 awalan penentu yang berbeda. Artinya, tampilan yang diberi otorisasi dapat menentukan satu kelompok kolom dengan 10 awalan penentu, 10 kelompok kolom dengan satu awalan penentu, atau di antaranya selama jumlah total penentu paling banyak 10.
Sebagai praktik terbaik, tentukan kunci hanya sekali per objek JSON. Jika Anda menentukan kunci, seperti nama grup kolom, lebih dari sekali, entri terakhir untuk kunci tersebut akan menggantikan entri sebelumnya untuk kunci tersebut.
Contoh file definisi
Bagian ini menyajikan contoh file definisi tampilan yang diotorisasi dalam format JSON.
Berikut adalah contoh file definisi untuk tampilan resmi yang menyertakan kolom address
dari grup kolom customer
dan kolom yang dimulai dengan tel
untuk baris dengan awalan kunci baris examplepetstore1#
.
{
"subsetView":
{
"rowPrefixes": ["examplepetstore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
Berikut adalah contoh file definisi untuk tampilan resmi yang menyertakan kolom skus
dalam grup kolom order
dan semua kolom dalam grup kolom customer
.
{
"subsetView": {
"rowPrefixes": [""],
"familySubsets": {
"order": {
"qualifiers": ["skus"]
},
"customer": {
"qualifierPrefixes": [""]
}
}
}
}
Berikut adalah contoh file definisi untuk tampilan resmi
yang hanya menyertakan data di kolom skus
dalam grup kolom order
di baris yang memiliki awalan kunci baris examplepetstore1#
.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
Berikut adalah contoh file definisi untuk tampilan resmi yang hanya menyertakan data di kolom skus
dan agents
dalam grup kolom order
serta kolom dog
, cat
, dan bird
dalam grup kolom pet_id
.
{
"subsetView": {
"rowPrefixes": [""]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}