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

Langkah selanjutnya