Halaman ini menjelaskan cara mengonfigurasi kontrol akses terperinci untuk database dialek Spanner untuk GoogleSQL dan database dialek PostgreSQL.
Untuk mempelajari kontrol akses terperinci, lihat Tentang kontrol akses terperinci.
Konfigurasi kontrol akses yang sangat terperinci dengan mengikuti langkah-langkah berikut:
Pengguna kontrol akses terperinci kemudian harus menentukan peran database untuk melakukan kueri, DML, atau operasi baris terhadap database.
Sebelum memulai
Pastikan setiap akun utama yang akan menjadi pengguna kontrol akses terperinci diberi
peran Identity and Access Management (IAM) Cloud Spanner Viewer (roles/spanner.viewer).
Peran ini direkomendasikan di tingkat project untuk pengguna yang harus berinteraksi dengan
resource Spanner di konsol Google Cloud .
Untuk mengetahui petunjuknya, lihat bagian Memberikan izin kepada akun utama.
Membuat peran database dan memberikan hak istimewa
Peran database adalah kumpulan hak istimewa akses terperinci. Anda dapat membuat hingga 100 peran database untuk setiap database.
Tentukan peran dan hierarki peran dalam database Anda, lalu encode dalam DDL. Seperti perubahan skema lainnya di Spanner, sebaiknya terbitkan perubahan skema dalam batch, bukan secara terpisah. Untuk mengetahui informasi selengkapnya, lihat Membatasi frekuensi update skema.
Konsol
Untuk membuat peran database dan memberikan hak istimewa akses terperinci kepadanya, ikuti langkah-langkah berikut:
Buka halaman Instances di konsol Google Cloud .
Pilih instance yang berisi database yang ingin Anda tambahi perannya.
Pilih database.
Di halaman Overview, klik Spanner Studio.
Di halaman Spanner Studio, untuk setiap peran database yang ingin Anda buat dan berikan hak istimewanya, ikuti langkah-langkah berikut:
Untuk membuat peran, masukkan pernyataan berikut:
CREATE ROLE ROLE_NAME;
Jangan klik Kirim terlebih dahulu.
Untuk memberikan hak istimewa ke peran, masukkan pernyataan
GRANTdi baris berikutnya setelah pernyataanCREATE ROLE.Untuk mengetahui detail sintaksis pernyataan
GRANT, lihat Bahasa definisi data GoogleSQL. Untuk mengetahui informasi tentang hak istimewa, lihat Hak istimewa kontrol akses terperinci.Misalnya, untuk memberikan
SELECT,INSERT, danUPDATEpada tabelemployeesdancontractorske peran databasehr_manager, masukkan pernyataan berikut:GoogleSQL
GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO ROLE hr_manager;PostgreSQL
GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO hr_manager;Anda dapat menggunakan template DDL untuk pernyataan
GRANT. Di panel Penjelajah, buka peran yang ingin Anda berikan hak istimewanya. Klik Lihat tindakan dan pilih jenis hak istimewa yang ingin Anda berikan aksesnya untuk peran ini. Pernyataan templateGRANTakan diisi di tab editor baru.
Klik Kirim.
Jika ada error dalam DDL, konsol Google Cloud akan menampilkan error.
gcloud
Untuk membuat peran database dan memberikan hak istimewa akses terperinci kepadanya,
gunakan perintah gcloud spanner databases ddl update
dengan pernyataan CREATE ROLE dan GRANT.
Untuk mengetahui detail sintaksis pada pernyataan CREATE ROLE dan GRANT, lihat
Bahasa definisi data GoogleSQL.
Misalnya, gunakan perintah berikut untuk membuat peran database dan memberikan hak istimewa kepadanya di satu atau beberapa tabel.
GoogleSQL
gcloud spanner databases ddl update DATABASE_NAME --instance=INSTANCE_NAME \ --ddl='CREATE ROLE ROLE_NAME; GRANT PRIVILEGES ON TABLE TABLES TO ROLE ROLE_NAME;'
PostgreSQL
gcloud spanner databases ddl update DATABASE_NAME --instance=INSTANCE_NAME \ --ddl='CREATE ROLE ROLE_NAME; GRANT PRIVILEGES ON TABLE TABLES TO ROLE_NAME;'
Ganti kode berikut:
PRIVILEGESadalah daftar hak istimewa kontrol akses terperinci yang dipisahkan dengan koma. Untuk mengetahui informasi tentang hak istimewa, lihat Hak istimewa kontrol akses terperinci.TABLESadalah daftar tabel yang dipisahkan koma.
Misalnya, untuk memberikan SELECT,
INSERT, dan UPDATE pada tabel employees dan contractors ke
peran database hr_analyst di database hrdb1 dalam instance hr,
masukkan pernyataan berikut:
GoogleSQL
gcloud spanner databases ddl update hrdb1 --instance=hr \ --ddl='CREATE ROLE hr_analyst; GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO ROLE hr_analyst;'
PostgreSQL
gcloud spanner databases ddl update hrdb1 --instance=hr \ --ddl='CREATE ROLE hr_analyst; GRANT SELECT, INSERT, UPDATE ON TABLE employees, contractors TO hr_analyst;'
Library klien
Contoh kode ini membuat dan menghapus peran database.
C++
C#