Ringkasan tampilan yang diotorisasi
Tampilan yang diotorisasi adalah tampilan logis tabel yang memberi Anda kontrol akses terperinci atas data Bigtable. Tampilan yang diotorisasi adalah subkumpulan tabel yang Anda konfigurasikan untuk menyertakan data tabel tertentu. Kemudian, Anda memberikan akses ke tampilan yang diotorisasi secara terpisah dari akses ke tabel.
Tampilan yang diotorisasi berguna untuk tabel multi-tenant atau situasi lainnya saat tabel Anda berisi data yang tidak dapat diakses oleh semua pengguna. Tidak seperti tampilan di layanan database lainnya, tampilan yang diberi otorisasi Bigtable dapat digunakan untuk mengontrol akses baca dan tulis. Anda dapat membuat ribuan tampilan yang diotorisasi secara terprogram, dengan cara yang sama seperti yang disebut sistem penyimpanan lain sebagai "tampilan yang dapat diperbarui" 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.
Yang menentukan 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 dimulai 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 penentu kolom yang sama digunakan di beberapa keluarga kolom dan Anda ingin menyertakan semua kolom dengan penentu tersebut dalam tampilan, Anda harus menentukan setiap kombinasi penentu kolom dan keluarga kolom secara terpisah saat menentukan tampilan.
Nilai kunci baris dan penentu kolom yang Anda gunakan untuk menentukan tampilan yang diotorisasi diperlakukan sebagai data layanan. Karena alasan ini, jangan buat tampilan yang diotorisasi menggunakan nilai kunci baris atau penentu kolom yang berisi informasi sensitif. Untuk mengetahui informasi tentang cara penanganan data layanan, lihat Google Cloud Pemberitahuan Privasi.
Menyertakan kolom dalam keluarga atau semua baris
Jika ingin memastikan bahwa setiap kolom yang ditambahkan ke grup kolom di
tabel pokok juga disertakan dalam tampilan yang diotorisasi, 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 yang diotorisasi yang terlalu rumit, Bigtable memungkinkan Anda menentukan maksimal 10 awalan penentu yang berbeda. Artinya, tampilan yang diberi otorisasi dapat menentukan satu keluarga kolom dengan 10 awalan penentu, 10 keluarga kolom dengan satu awalan penentu, atau di antara keduanya selama jumlah total penentu tidak lebih dari 10.
Sebagai praktik terbaik, tentukan kunci hanya sekali per objek JSON. Jika Anda menentukan kunci, seperti nama grup kolom, lebih dari sekali, entri akhir untuk kunci tersebut akan menimpa 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 semua baris dengan awalan kunci baris examplepetstore1#
.
{
"subsetView":
{
"rowPrefixes": ["examplestore1#"],
"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": {
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
"familySubsets": {
"key": "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
di grup kolom order
dan kolom dog
, cat
, dan bird
di grup kolom pet_id
.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}