Kontrol akses yang mendetail untuk aliran perubahan

Halaman ini menjelaskan cara kerja kontrol akses yang mendetail dengan aliran data perubahan Spanner.

Untuk pengguna kontrol akses terperinci, Anda mengizinkan akses baca untuk mengubah data aliran data dengan menggunakan pemberian berikut. Kedua hibah diperlukan.

  • Memberikan SELECT pada aliran perubahan.

    GoogleSQL

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE_NAME;
    
  • Memberikan EXECUTE pada fungsi baca yang dibuat otomatis untuk aliran perubahan. Anda menggunakan fungsi baca untuk membaca catatan aliran data perubahan.

    GoogleSQL

    GRANT EXECUTE ON TABLE FUNCTION READ_FUNCTION_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT EXECUTE ON FUNCTION READ_FUNCTION_NAME TO ROLE_NAME;
    

    Untuk mengetahui informasi tentang konvensi penamaan untuk fungsi pembacaan aliran perubahan dan tentang pemformatan untuk informasi yang ditampilkan, lihat topik berikut:

INFORMATION_SCHEMA tampilan untuk aliran perubahan

Tampilan berikut menunjukkan informasi peran database dan hak istimewa untuk aliran perubahan:

Baris dalam tampilan ini difilter berdasarkan hak istimewa peran database saat ini di aliran perubahan. Hal ini memastikan akun utama hanya dapat melihat peran, hak istimewa, dan aliran perubahan yang dapat mereka akses.

Pemfilteran baris juga berlaku untuk tampilan yang terkait aliran perubahan berikut:

GoogleSQL

Peran sistem spanner_info_reader dan anggotanya selalu melihat INFORMATION_SCHEMA yang tidak difilter.

PostgreSQL

Peran sistem spanner_info_reader dan anggotanya melihat information_schema yang tidak difilter.

Pemfilteran baris juga berlaku untuk tampilan metadata berikut untuk fungsi pembacaan aliran perubahan:

Peringatan

  • Aliran data perubahan menggunakan database metadata untuk mempertahankan status internal. Database metadata dapat sama atau berbeda dengan database aplikasi. Sebaiknya gunakan database yang berbeda. Namun, untuk pengguna kontrol akses yang mendetail, database metadata tidak boleh sama dengan database aplikasi. Hal ini karena akun utama IAM yang menjalankan tugas Dataflow memerlukan akses baca/tulis di tingkat database untuk database metadata. Tindakan ini akan mengganti hak istimewa kontrol akses terperinci yang dikonfigurasi untuk database aplikasi.

    Untuk informasi selengkapnya, lihat Mempertimbangkan database metadata terpisah.

  • Karena aliran perubahan berisi salinan data terpisah dari tabel dan kolom yang dilacak, berhati-hatilah saat memberi pengguna akses ke aliran perubahan. Pembaca aliran data perubahan dapat melihat perubahan data dari tabel dan kolom yang dilacak, meskipun mereka tidak memiliki hak istimewa SELECT di tabel dan kolom. Meskipun lebih fleksibel untuk menyiapkan kontrol terpisah pada aliran perubahan serta tabel dan kolom yang dilacak, ada potensi risiko. Jadi, pastikan Anda menyusun peran dan hak istimewa database sebagaimana mestinya. Misalnya, saat mencabut hak istimewa SELECT pada tabel dari suatu peran, pertimbangkan apakah akan mencabut SELECT pada aliran perubahan dan mencabut EXECUTE pada fungsi baca yang terkait.

  • Jika Anda memberikan SELECT pada aliran perubahan yang melacak semua tabel, penerima hibah dapat melihat perubahan data untuk setiap tabel yang ditambahkan di masa mendatang.

Informasi selengkapnya