Halaman ini menjelaskan cara mengonfigurasi kontrol akses terperinci untuk database Spanner.
Untuk mempelajari kontrol akses terperinci, lihat Tentang kontrol akses terperinci.
Mengonfigurasi kontrol akses yang sangat terperinci melibatkan langkah-langkah berikut:
Berikan akses ke peran database kepada akun utama Identity and Access Management (IAM).
Beri tahu pengguna dan developer untuk mulai menggunakan peran database.
Pengguna kontrol akses terperinci kemudian harus menentukan peran database untuk menjalankan kueri, DML, atau operasi baris terhadap database.
Sebelum memulai
Pastikan setiap akun utama 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 yang sangat terperinci. Anda dapat membuat hingga 100 peran database untuk setiap database.
Tentukan peran dan hierarki peran di 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 pembaruan skema.
Konsol
Untuk membuat peran database dan memberikan hak istimewa akses terperinci ke peran tersebut, ikuti langkah-langkah berikut:
Buka halaman Instance 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 istimewa, 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 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 hak istimewanya ingin Anda berikan. Klik Lihat tindakan dan pilih jenis hak istimewa yang ingin Anda berikan akses 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 ke peran tersebut,
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 ke peran tersebut 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:
PRIVILEGES
adalah daftar hak istimewa kontrol akses terperinci yang dipisahkan koma. Untuk 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
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#
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 peran 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 akses ke peran database kepada akun utama IAM
Sebelum akun utama dapat menggunakan peran database untuk mengakses resource Spanner, Anda harus memberinya akses ke peran database.
Konsol
Untuk memberikan akses ke peran database ke akun utama IAM, ikuti langkah-langkah berikut:
Di halaman Ringkasan database, klik SHOW INFO PANEL jika Panel info belum terbuka.
Klik ADD PRINCIPAL.
Di panel Grant access to database_name, pada bagian Add principals, tentukan satu atau beberapa akun utama IAM.
Di bagian Assign roles, pada menu Select a role, pilih Cloud Spanner > Cloud Spanner Fine-grained Access User.
Anda hanya perlu memberikan peran ini satu kali kepada setiap akun utama. Hal ini membuat prinsipal menjadi pengguna kontrol akses yang sangat terperinci.
Klik ADD ANOTHER ROLE.
Di menu 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 memberikan satu peran database, Anda biasanya akan menyertakan nama peran dalam judul kondisi. Jika memberikan beberapa peran, Anda dapat menunjukkan sesuatu tentang kumpulan peran.
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.Atau, untuk memberikan akses ke akun utama ke lebih dari satu peran, tambahkan lebih banyak kondisi dengan operator atau (
||
), seperti yang ditunjukkan dalam 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 lebih banyak kondisi atau.Anda dapat menggunakan ekspresi kondisi apa pun yang didukung oleh IAM. Untuk informasi selengkapnya, lihat Ringkasan kondisi IAM.
Klik Simpan.
Kembali ke panel sebelumnya, pastikan kondisi muncul di kolom IAM Condition di samping kolom Role.
Klik Simpan.
Kembali ke panel Info, di bagian Peran/Prinsipal, perhatikan bahwa Pengguna Peran Database Cloud Spanner muncul untuk setiap kondisi yang ditentukan.
Angka dalam tanda kurung di samping kondisi menunjukkan jumlah akun utama yang diberi peran database oleh kondisi tersebut. Anda dapat mengklik panah peluas untuk melihat daftar akun utama.
Untuk memperbaiki error pada nama atau kondisi peran database, atau untuk menambahkan peran database tambahan bagi akun utama, 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 access to database_name, lakukan salah satu hal berikut:
Klik ADD ANOTHER ROLE.
Untuk mengedit kondisi, klik ikon Edit (pensil) di samping nama kondisi. Kemudian, di halaman Edit condition, klik CONDITION EDITOR, lakukan koreksi, lalu klik Save dua kali.
gcloud
Untuk memberikan akses ke peran database ke akun utama IAM, ikuti langkah-langkah berikut:
Aktifkan kontrol akses terperinci untuk akun utama 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 prinsipal. Harus dalam formatuser|group|serviceAccount:email
ataudomain:domain
.Perintah ini menjadikan akun utama sebagai pengguna kontrol akses terperinci. Kirim perintah ini hanya sekali untuk setiap akun utama.
Jika berhasil, perintah akan menampilkan seluruh kebijakan untuk database.
Berikan izin untuk menggunakan satu atau beberapa peran database 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 prinsipal. Harus dalam formatuser|group|serviceAccount:email
ataudomain:domain
.CONDITION
adalah ekspresi kondisi IAM yang menentukan peran yang akan diberikan kepada akun utama.CONDITION
memiliki bentuk berikut:--condition='expression=(resource.type == "spanner.googleapis.com/DatabaseRole" && resource.name.endsWith("/ROLE1")),title=TITLE,description=DESCRIPTION'
Atau, untuk memberikan akses ke akun utama ke lebih dari satu peran, tambahkan lebih banyak kondisi dengan operator atau (
||
), 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 informasi selengkapnya, lihat Ringkasan kondisi IAM.
Jika berhasil, perintah akan menampilkan seluruh kebijakan untuk database.
Contoh berikut memberikan peran database
hr_rep
danhr_manager
ke 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 informasi selengkapnya, lihat Mengakses database dengan kontrol akses terperinci.
Mentransisikan akun utama ke kontrol akses yang sangat terperinci
Untuk mentransisikan akun utama IAM dari kontrol akses tingkat database ke kontrol akses yang sangat terperinci, ikuti langkah-langkah berikut:
Aktifkan kontrol akses terperinci untuk akun utama dan berikan akses ke semua peran database yang diperlukan, seperti yang dijelaskan dalam Memberikan akses ke peran database ke akun utama IAM.
Update semua aplikasi yang berjalan sebagai akun utama ini. Tentukan peran database yang sesuai dalam panggilan ke metode library klien.
Cabut semua peran tingkat database IAM dari akun utama. Dengan cara ini, akses untuk akun utama hanya diatur oleh satu metode.
Pengecualian: Untuk berinteraksi dengan resource Spanner di konsol Google Cloud, semua pengguna harus memiliki peran IAM
roles/spanner.viewer
.Untuk mencabut peran tingkat database IAM, 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.
Tindakan 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 ke 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 pada 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 pada 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 akun utama yang merupakan pengguna kontrol akses terperinci, jalankan perintah
berikut. Untuk menjalankan perintah, Anda harus mengaktifkan Cloud Asset API di project, 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 project Google Cloud.
Melihat akun utama IAM dengan akses ke peran database
Untuk melihat daftar akun utama yang telah diberi akses ke peran database
tertentu, jalankan perintah berikut. Untuk menjalankan perintah, Anda harus mengaktifkan Cloud Asset API di project, 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 Cloud Spanner Database Role User kepada akun utama, 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 }
Contoh PRINCIPAL_IDENTIFIER:
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 mengetahui kondisi peran database yang tidak ada
Setelah Anda memberikan akses ke peran database kepada 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 akan otomatis mencabut keanggotaan peran lain dari peran tersebut, dan mencabut keanggotaan peran dalam peran lain.
Untuk menghapus peran database, Anda harus melakukan hal berikut terlebih dahulu:
- Cabut semua hak istimewa kontrol akses yang sangat terperinci dari peran.
- Hapus binding kebijakan IAM apa pun 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 informasi tentang hak istimewa, lihat Hak istimewa kontrol akses terperinci.Misalnya, untuk mencabut
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 PostgreSQL data definition language. Untuk 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 Penjelajah, buka peran yang hak istimewanya ingin Anda cabut. Klik Lihat tindakan dan pilih jenis hak istimewa yang aksesnya ingin Anda cabut untuk peran ini. Pernyataan templateREVOKE
akan diisi di tab editor baru.Hapus semua kondisi IAM yang terkait dengan peran.
Dalam daftar peran di panel Info, temukan peran Cloud Spanner Database Role User yang memiliki judul kondisi yang diinginkan di sampingnya, lalu luaskan peran untuk melihat akun utama 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 (tong sampah) di samping peran Pengguna Peran Database Cloud Spanner.
Klik Simpan.
Ulangi tiga langkah sebelumnya untuk akun utama 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
seperti 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 prinsipal. Harus dalam formatuser|group|serviceAccount:email
ataudomain:domain
.CONDITION
adalah ekspresi kondisi IAM yang menentukan peran yang akan diberikan kepada akun utama.CONDITION
memiliki bentuk 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 yang sangat terperinci untuk aliran perubahan
- Hak istimewa kontrol akses yang sangat terperinci
- Referensi DDL GoogleSQL
- Melakukan pembaruan skema