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 prinsipal yang akan menjadi pengguna kontrol akses terperinci diberi
peran 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 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 lakukan 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 peran.
Pilih database.
Di halaman Ringkasan, 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
GRANT
di 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
, danUPDATE
pada tabelemployees
dancontractors
ke 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 beri hak istimewa. Klik Lihat tindakan dan pilih jenis hak istimewa yang ingin Anda berikan aksesnya untuk peran ini. Pernyataan templateGRANT
akan 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 pada 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:
PRIVILEGES
adalah daftar hak istimewa kontrol akses terperinci yang dipisahkan dengan koma. Untuk mengetahui informasi tentang hak istimewa, lihat Hak istimewa kontrol akses terperinci.TABLES
adalah daftar tabel yang dipisahkan koma.
Misalnya, untuk memberikan SELECT
,
INSERT
, dan UPDATE
pada tabel employees
dan contractors
ke
peran database hr_analyst
dalam database hrdb1
di 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#
Go
Java
Node.js
PHP
Python
Ruby
Membuat hierarki peran dengan pewarisan
Anda dapat membuat hierarki peran database dengan memberikan satu peran database ke peran database lainnya. Peran turunan (dikenal sebagai peran anggota) mewarisi hak istimewa dari induk.
Untuk memberikan peran database ke peran database lain, gunakan pernyataan berikut:
GoogleSQL
GRANT ROLE role1 TO ROLE role2;
PostgreSQL
GRANT role1 TO role2;
Untuk mengetahui informasi selengkapnya, lihat Hierarki dan pewarisan peran database.
Memberikan peran database kepada akun utama
Untuk mengakses resource Spanner, akun utama harus diberi peran database yang diperlukan menggunakan salah satu opsi berikut:
Konsol
Di halaman Ringkasan database, klik TAMPILKAN PANEL INFO jika panel info belum terbuka.
Klik TAMBAHKAN AKUN UTAMA.
Di bagian Tambahkan akun utama, di Akun utama baru, masukkan satu atau beberapa akun utama.
Di bagian Tetapkan peran, di Pilih peran, pilih Cloud Spanner > Cloud Spanner Fine-grained Access User.
Anda hanya perlu memberikan peran ini satu kali kepada setiap prinsipal. Hal ini menjadikan principal sebagai pengguna kontrol akses terperinci.
Klik ADD ANOTHER ROLE.
Di Select a role, pilih Cloud Spanner > Cloud Spanner Database Role User.
Ikuti langkah-langkah berikut untuk membuat kondisi IAM yang menentukan peran yang akan diberikan.
Di samping peran Pengguna Peran Database Cloud Spanner, klik TAMBAHKAN KETENTUAN IAM.
Di panel Tambahkan kondisi, masukkan judul dan deskripsi opsional untuk kondisi.
Jika Anda memberikan satu peran database, biasanya Anda menyertakan nama peran dalam judul kondisi. Jika Anda memberikan beberapa peran, Anda dapat menunjukkan sesuatu tentang kumpulan peran tersebut.
Klik Editor kondisi.
Di kolom Expression, masukkan kode berikut:
resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/ROLE")
Ganti
ROLE
dengan nama peran Anda.Untuk memberikan lebih dari satu peran ke akun utama, tambahkan lebih banyak kondisi dengan operator or (
||
), seperti yang ditunjukkan pada contoh berikut:resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))
Kode ini memberikan dua peran. Ganti
ROLE1
danROLE2
dengan nama peran Anda. Untuk memberikan lebih dari dua peran, tambahkan kondisi atau lainnya.Anda dapat menggunakan ekspresi kondisi apa pun yang didukung oleh IAM. Untuk mengetahui informasi selengkapnya, lihat Ringkasan kondisi IAM.
Klik Simpan.
Pastikan kondisi muncul di kolom Kondisi IAM di samping kolom Peran.
Klik Simpan.
Kembali ke panel Info, di bagian Peran/Principal, perhatikan bahwa Pengguna Peran Database Cloud Spanner muncul untuk setiap kondisi yang ditentukan.
Angka dalam tanda kurung di samping kondisi menunjukkan jumlah principal yang diberi peran database berdasarkan kondisi tersebut. Anda dapat mengklik panah peluas untuk melihat daftar akun utama.
Untuk memperbaiki kesalahan pada nama atau kondisi peran database, atau untuk menambahkan peran database tambahan bagi prinsipal, ikuti langkah-langkah berikut:
Luaskan entri Pengguna Peran Database Cloud Spanner yang mencantumkan kondisi yang Anda inginkan.
Klik ikon Edit (pensil) di samping akun utama.
Di panel Edit akses ke database_name, lakukan salah satu tindakan berikut:
Klik ADD ANOTHER ROLE.
Untuk mengedit kondisi, klik ikon Edit (pensil) di samping nama kondisi. Kemudian, di halaman Edit kondisi, klik Editor kondisi, lakukan koreksi, lalu klik Simpan dua kali.
gcloud
Aktifkan kontrol akses terperinci untuk prinsipal menggunakan perintah
gcloud spanner databases add-iam-policy-binding
sebagai berikut:gcloud spanner databases add-iam-policy-binding DATABASE_NAME \ --instance=INSTANCE_NAME \ --role=roles/spanner.fineGrainedAccessUser \ --member=MEMBER_NAME \ --condition=None
MEMBER_NAME
adalah ID untuk principal. Harus menggunakan salah satu sintaksis berikut:user|group|serviceAccount:email
ataudomain:domain
.Perintah ini menjadikan prinsipal sebagai pengguna kontrol akses terperinci. Kirimkan perintah ini hanya sekali untuk setiap prinsipal.
Jika berhasil, perintah akan menampilkan seluruh kebijakan untuk database.
Berikan izin untuk menggunakan satu atau beberapa peran database dengan menggunakan perintah
gcloud spanner databases add-iam-policy-binding
sebagai berikut:gcloud spanner databases add-iam-policy-binding DATABASE_NAME \ --instance=INSTANCE_NAME \ --role=roles/spanner.databaseRoleUser \ --member=MEMBER_NAME \ --condition=CONDITION
MEMBER_NAME
adalah ID untuk principal. Harus menggunakan salah satu sintaksis berikut:user|group|serviceAccount:email
ataudomain:domain
.CONDITION
adalah ekspresi kondisi IAM yang menentukan peran yang akan diberikan ke akun utama.CONDITION
memiliki format berikut:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/ROLE1")),title=TITLE,description=DESCRIPTION'
Atau, untuk memberikan akses ke akun utama untuk lebih dari satu peran, tambahkan lebih banyak kondisi dengan operator or (
||
), seperti yang ditunjukkan dalam contoh berikut:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))),title=TITLE,description=DESCRIPTION'
Kode ini memberikan dua peran. Ganti
ROLE1
danROLE2
dengan nama peran Anda. Untuk memberikan lebih dari dua peran, tambahkan lebih banyak kondisi atau dengan operator||
.Anda dapat menggunakan ekspresi kondisi apa pun yang didukung oleh IAM. Untuk mengetahui informasi selengkapnya, lihat Ringkasan kondisi IAM.
Jika berhasil, perintah akan menampilkan seluruh kebijakan untuk database.
Contoh berikut memberikan peran database
hr_rep
danhr_manager
kepada akun utamajsmith@example.com
.gcloud spanner databases add-iam-policy-binding myDatabase \ --instance=myInstance \ --role=roles/spanner.databaseRoleUser \ --member=user:jsmith@example.com \ --condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/hr_rep") || resource.name.endsWith("/hr_manager"))),title=HR roles,description=Grant permissions on HR roles'
Library klien
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Memberi tahu pengguna dan developer untuk mulai menggunakan peran database
Setelah konfigurasi kontrol akses terperinci awal selesai, beri tahu pengguna dan developer aplikasi bahwa mereka harus mulai menggunakan peran database.
Pengguna kontrol akses terperinci harus mulai menentukan peran database saat mereka mengakses database Spanner melalui konsol Google Cloud atau Google Cloud CLI.
Aplikasi yang menggunakan kontrol akses terperinci harus menentukan peran database saat mengakses database.
Untuk mengetahui informasi selengkapnya, lihat Mengakses database dengan kontrol akses terperinci.
Mengubah prinsipal ke kontrol akses terperinci
Untuk mentransisikan prinsipal dari kontrol akses tingkat database ke kontrol akses terperinci, ikuti langkah-langkah berikut:
Aktifkan kontrol akses terperinci untuk prinsipal dan berikan akses ke semua peran database yang diperlukan, seperti yang dijelaskan dalam Memberikan peran database kepada prinsipal.
Perbarui semua aplikasi yang berjalan sebagai prinsipal ini. Tentukan peran database yang sesuai dalam panggilan ke metode library klien.
Mencabut semua peran tingkat database IAM dari akun utama. Dengan cara ini, akses untuk prinsipal hanya diatur oleh satu metode.
Pengecualian: Untuk berinteraksi dengan resource Spanner di konsolGoogle Cloud , semua pengguna harus memiliki peran IAM
roles/spanner.viewer
.Untuk mencabut peran IAM tingkat database, ikuti petunjuk di bagian Menghapus izin tingkat database.
Mencantumkan peran database
Anda dapat mencantumkan peran database yang terkait dengan database.
Konsol
Untuk mencantumkan peran database, masukkan kueri berikut di halaman Spanner Studio untuk database:
GoogleSQL
SELECT * FROM INFORMATION_SCHEMA.ROLES;
PostgreSQL
SELECT * FROM information_schema.enabled_roles;
Respons mencakup peran saat ini dan peran yang hak istimewanya dapat digunakan oleh peran saat ini melalui pewarisan. Untuk mengambil semua peran, gunakan perintah Google Cloud CLI.
gcloud
Untuk mendapatkan daftar peran database yang tidak difilter, masukkan perintah berikut.
Aplikasi ini memerlukan izin spanner.databaseRoles.list
.
gcloud spanner databases roles list --database=DATABASE_NAME --instance=INSTANCE_NAME
Library klien
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Melihat hak istimewa yang diberikan ke peran database
Untuk melihat hak istimewa yang diberikan kepada peran, jalankan kueri berikut:
GoogleSQL
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES WHERE grantee = 'ROLE_NAME'; SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES WHERE grantee = 'ROLE_NAME'; SELECT * FROM INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES WHERE grantee = 'ROLE_NAME';
INFORMATION_SCHEMA.TABLE_PRIVILEGES
menampilkan hak istimewa di kedua tabel dan
tampilan. Hak istimewa SELECT
, INSERT
, dan UPDATE
di TABLE_PRIVILEGES
juga ditampilkan di COLUMN_PRIVILEGES
.
PostgreSQL
SELECT * FROM information_schema.table_privileges WHERE grantee = 'ROLE_NAME'; SELECT * FROM information_schema.column_privileges WHERE grantee = 'ROLE_NAME'; SELECT * FROM information_schema.change_stream_privileges WHERE grantee = 'ROLE_NAME';
information_schema.table_privileges
menampilkan hak istimewa di kedua tabel dan
tampilan.
Hak istimewa SELECT
, INSERT
, dan UPDATE
di table_privileges
juga ditampilkan di column_privileges
.
Melihat pengguna kontrol akses terperinci
Untuk melihat daftar prinsipal yang merupakan pengguna kontrol akses terperinci, jalankan perintah
berikut. Untuk menjalankan perintah, Anda harus mengaktifkan Cloud Asset API di project Anda, dan Anda harus memiliki izin IAM cloudasset.assets.searchAllIamPolicies
.
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles=roles/spanner.fineGrainedAccessUser AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' \ --flatten=policy.bindings[].members[] \ --format='table(policy.bindings.members)'
Outputnya mirip dengan berikut ini:
MEMBERS user:222larabrown@gmail.com user:baklavainthebalkans@gmail.com serviceAccount:cs-fgac-sa-1@cloud-spanner-demo.google.com.iam.gserviceaccount.com serviceAccount:cs-fgac-sa-2@cloud-spanner-demo.google.com.iam.gserviceaccount.com
Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan API di Google Cloud project.
Melihat prinsipal dengan akses database
Untuk melihat daftar prinsipal yang telah diberi akses ke database tertentu, jalankan perintah berikut. Untuk menjalankan perintah ini, Anda harus mengaktifkan Cloud Asset API di project Anda, dan Anda harus memiliki izin IAM cloudasset.assets.searchAllIamPolicies
.
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles=roles/spanner.databaseRoleUser AND policy:"resource.name" AND policy:/ROLE_NAME AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' \ --flatten=policy.bindings[].members[] \ --format='table(policy.bindings.members)'
Outputnya mirip dengan berikut ini:
MEMBERS 222larabrown@gmail.com
Melihat kondisi IAM untuk akun utama
Untuk melihat daftar kondisi IAM yang ditentukan saat memberikan peran Pengguna Peran Database Cloud Spanner kepada prinsipal, jalankan perintah berikut:
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles=roles/spanner.databaseRoleUser AND policy:resource.name AND policy:"PRINCIPAL_IDENTIFIER" AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' \ --flatten=policy.bindings[] \ --format='table(policy.bindings.condition.expression)'
dengan PRINCIPAL_IDENTIFIER adalah:
{ user:user-account-name | serviceAccount:service-account-name }
PRINCIPAL_IDENTIFIER contoh:
user:222larabrown@gmail.com serviceAccount:cs-fgac-sa-1@cloud-spanner-demo.google.com.iam.gserviceaccount.com
Contoh output berikut menunjukkan dua ekspresi kondisi.
EXPRESSION resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/hr_analyst") resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/hr_manager")
Memeriksa kebijakan IAM untuk kondisi peran database yang tidak ada
Setelah Anda memberikan akses ke peran database untuk akun utama, sebaiknya pastikan setiap binding IAM memiliki kondisi yang ditentukan.
Untuk melakukan pemeriksaan ini, jalankan perintah berikut:
gcloud asset search-all-iam-policies \ --scope=projects/PROJECT_NAME \ --query='roles:roles/spanner.databaseRoleUser AND resource=//spanner.googleapis.com/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME' --flatten=policy.bindings[].members[]
Outputnya mirip dengan hal berikut ini:
ROLE MEMBERS EXPRESSION roles/spanner.databaseRoleUser serviceAccount:cs-fgac-sa-1@... roles/spanner.databaseRoleUser serviceAccount:cs-fgac-sa-2@... resource.type == "spanner…"
Perhatikan bahwa hasil pertama tidak memiliki kondisi, sehingga akun utama dalam binding ini memiliki akses ke semua peran database.
Menghapus peran database
Menghapus peran database secara otomatis mencabut keanggotaan peran lain dari peran tersebut, dan mencabut keanggotaan peran tersebut dalam peran lain.
Untuk menghapus peran database, Anda harus melakukan hal berikut terlebih dahulu:
- Mencabut semua hak istimewa kontrol akses terperinci dari peran.
- Hapus semua binding kebijakan IAM yang merujuk ke peran tersebut, sehingga peran database yang dibuat nanti dengan nama yang sama tidak mewarisi binding tersebut.
Konsol
Untuk menghapus peran database, ikuti langkah-langkah berikut:
Di halaman Ringkasan database, klik Spanner Studio.
Untuk mencabut hak istimewa dari peran, masukkan pernyataan
REVOKE
.GoogleSQL
Untuk mengetahui detail sintaksis pernyataan
REVOKE
, lihat Bahasa definisi data GoogleSQL. Untuk mengetahui informasi tentang hak istimewa, lihat Hak istimewa kontrol akses terperinci.Misalnya, untuk mencabut izin
SELECT
,INSERT
, danUPDATE
pada tabelemployees
dancontractors
dari peran databasehr_manager
, masukkan pernyataan berikut:REVOKE SELECT, INSERT, UPDATE ON TABLE employees, contractors FROM ROLE hr_manager;
PostgreSQL
Untuk mengetahui detail sintaksis pernyataan
REVOKE
, lihat Bahasa definisi data PostgreSQL. Untuk mengetahui informasi tentang hak istimewa, lihat Hak istimewa kontrol akses terperinci.Misalnya, untuk mencabut hak istimewa
SELECT
,INSERT
, danUPDATE
pada tabelemployees
dancontractors
dari peran databasehr_manager
, masukkan pernyataan berikut:REVOKE SELECT, INSERT, UPDATE ON TABLE employees, contractors FROM hr_manager;
Anda dapat menggunakan template DDL untuk pernyataan
REVOKE
. Di panel Explorer, buka peran yang ingin Anda cabut hak istimewanya. Klik Lihat tindakan dan pilih jenis hak istimewa yang ingin Anda batalkan aksesnya untuk peran ini. Pernyataan templateREVOKE
akan diisi di tab editor baru.Hapus semua kondisi IAM yang terkait dengan peran tersebut.
Dalam daftar peran di Panel info, temukan peran Pengguna Peran Database Cloud Spanner yang memiliki judul kondisi yang diinginkan di sampingnya, lalu perluas peran untuk melihat pokok keamanan yang memiliki akses ke peran tersebut.
Untuk salah satu akun utama, klik ikon Edit akun utama (pensil).
Di halaman Edit akses, klik ikon Hapus peran (tempat sampah) di samping peran Pengguna Peran Database Cloud Spanner.
Klik Simpan.
Ulangi tiga langkah sebelumnya untuk prinsipal lain yang tercantum dalam kondisi.
Untuk menghapus peran, buka halaman Spanner Studio dan masukkan pernyataan berikut:
DROP ROLE ROLE_NAME;
Klik Kirim.
gcloud
Untuk mencabut semua hak istimewa untuk suatu peran, lalu menghapus peran tersebut, gunakan perintah
gcloud spanner databases ddl update
sebagai berikut:GoogleSQL
gcloud spanner databases ddl update DATABASE_NAME \ --instance=INSTANCE_NAME \ --ddl='REVOKE PERMISSIONS ON TABLE TABLE_NAME FROM ROLE ROLE_NAME; DROP ROLE ROLE_NAME;'
PostgreSQL
gcloud spanner databases ddl update DATABASE_NAME \ --instance=INSTANCE_NAME \ --ddl='REVOKE PERMISSIONS ON TABLE TABLE_NAME FROM ROLE_NAME; DROP ROLE ROLE_NAME;'
Nilai yang valid untuk
PERMISSIONS
adalahSELECT
,INSERT
,UPDATE
, danDELETE
.Untuk menghapus kondisi IAM terkait, gunakan perintah
gcloud spanner databases remove-iam-policy-binding
sebagai berikut:gcloud spanner databases remove-iam-policy-binding DATABASE_NAME \ --instance=INSTANCE_NAME \ --role=ROLE_NAME \ --member=MEMBER_NAME \ --condition=CONDITION
MEMBER_NAME
adalah ID untuk principal. Harus dalam formatuser|group|serviceAccount:email
ataudomain:domain
.CONDITION
adalah ekspresi kondisi IAM yang menentukan peran yang akan diberikan ke akun utama.CONDITION
memiliki format berikut:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && (resource.name.endsWith("/ROLE1") || resource.name.endsWith("/ROLE2"))),title=TITLE,description=DESCRIPTION'
Seluruh spesifikasi kondisi harus sama persis dengan spesifikasi kondisi yang digunakan dalam perintah yang memberikan izin, termasuk judul dan deskripsi.
Library klien
Contoh kode ini membuat dan menghapus peran database.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Informasi selengkapnya
- Tentang kontrol akses terperinci
- Kontrol akses terperinci untuk aliran perubahan
- Hak istimewa kontrol akses terperinci
- Referensi DDL GoogleSQL
- Membuat pembaruan skema