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:
- Database dialek GoogleSQL:
INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES
- Database dialek PostgreSQL:
information_schema.change_stream_privileges
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
INFORMATION_SCHEMA.CHANGE_STREAMS
INFORMATION_SCHEMA.CHANGE_STREAM_TABLES
INFORMATION_SCHEMA.CHANGE_STREAM_COLUMNS
INFORMATION_SCHEMA.CHANGE_STREAM_OPTIONS
Peran sistem spanner_info_reader
dan anggotanya selalu melihat INFORMATION_SCHEMA
yang tidak difilter.
PostgreSQL
information_schema.change_streams
information_schema.change_stream_tables
information_schema.change_stream_columns
information_schema.change_stream_options
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:
GoogleSQL
PostgreSQL
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 istimewaSELECT
pada tabel dari suatu peran, pertimbangkan apakah akan mencabutSELECT
pada aliran perubahan dan mencabutEXECUTE
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
- Tentang aliran data perubahan
- Membuat dan mengelola aliran perubahan
- Tentang kontrol akses yang terperinci