Kontrol akses yang sangat terperinci untuk aliran perubahan

Halaman ini menjelaskan cara kerja kontrol akses terperinci dengan aliran perubahan Spanner untuk database dialek GoogleSQL dan database dialek PostgreSQL.

Untuk pengguna kontrol akses terperinci, Anda mengizinkan akses baca ke data aliran perubahan menggunakan pemberian berikut. Kedua izin diperlukan.

  • Berikan 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;
  • Berikan EXECUTE pada fungsi baca yang dibuat secara otomatis untuk aliran data perubahan. Anda menggunakan fungsi baca untuk membaca data aliran 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 baca aliran data perubahan dan pemformatan untuk informasi yang ditampilkan, lihat topik berikut:

Tampilan INFORMATION_SCHEMA untuk aliran perubahan

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

Baris dalam tabel virtual ini difilter berdasarkan hak istimewa peran database saat ini pada aliran data perubahan. Hal ini memastikan bahwa akun utama hanya dapat melihat peran, hak istimewa, dan aliran data perubahan yang dapat mereka akses.

Pemfilteran baris juga berlaku untuk tampilan terkait aliran data 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 baca aliran data perubahan:

Peringatan

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

    Untuk mengetahui informasi selengkapnya, lihat Mempertimbangkan database metadata terpisah.

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

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

Langkah berikutnya