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 dapat mengizinkan akses baca ke data aliran perubahan menggunakan pemberian izin berikut. Kedua pemberian izin diperlukan.
Beri izin
SELECTpada 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;
Beri izin
EXECUTEpada fungsi baca yang otomatis dibuat untuk aliran perubahan. Anda menggunakan fungsi baca untuk membaca rekaman 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 perubahan dan pemformatan untuk informasi yang ditampilkan, lihat topik berikut:
Tampilan INFORMATION_SCHEMA untuk aliran perubahan
Tampilan berikut menampilkan informasi peran dan hak istimewa database 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 pada aliran perubahan. Hal ini memastikan bahwa akun utama hanya dapat melihat peran, hak istimewa, dan aliran perubahan yang dapat diaksesnya.
Pemfilteran baris juga berlaku untuk tampilan terkait aliran perubahan berikut:
GoogleSQL
INFORMATION_SCHEMA.CHANGE_STREAMSINFORMATION_SCHEMA.CHANGE_STREAM_TABLESINFORMATION_SCHEMA.CHANGE_STREAM_COLUMNSINFORMATION_SCHEMA.CHANGE_STREAM_OPTIONS
Peran sistem spanner_info_reader dan anggotanya selalu melihat INFORMATION_SCHEMA yang tidak difilter.
PostgreSQL
information_schema.change_streamsinformation_schema.change_stream_tablesinformation_schema.change_stream_columnsinformation_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 baca aliran perubahan:
GoogleSQL
PostgreSQL
Peringatan
Aliran perubahan menggunakan database metadata untuk mempertahankan status internal. Database metadata dapat sama dengan atau berbeda dari database aplikasi. Sebaiknya gunakan database yang berbeda. Namun, untuk pengguna kontrol akses terperinci, database metadata tidak boleh sama dengan database aplikasi. Hal ini karena akun utama 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 Pertimbangkan database metadata terpisah.
Karena aliran perubahan berisi salinan data terpisah dari tabel dan kolom yang dilacak, berhati-hatilah saat memberikan akses pengguna ke aliran perubahan. Pembaca aliran perubahan dapat melihat perubahan data dari tabel dan kolom yang dilacak, meskipun mereka tidak memiliki hak istimewa
SELECTpada 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 dengan tepat. Misalnya, saat mencabut hak istimewaSELECTpada tabel dari peran, pertimbangkan apakah akan mencabutSELECTpada aliran perubahan dan mencabutEXECUTEpada fungsi baca terkait.Jika Anda memberikan
SELECTpada aliran perubahan yang melacak semua tabel, penerima dapat melihat perubahan data untuk tabel apa pun yang ditambahkan di masa mendatang.
Langkah berikutnya
- Ringkasan aliran perubahan
- Membuat dan mengelola aliran perubahan
- Ringkasan kontrol akses yang sangat terperinci