Formulir data dan BigQuery menggunakan IAM untuk kontrol akses. Untuk mengetahui informasi selengkapnya tentang peran dan izin formulir data di IAM, lihat Mengontrol akses dengan IAM.
Saat menjalankan tabel atau tampilan, Dataform membuat resource di BigQuery. Selama pengembangan di Dataform, Anda dapat memberikan peran BigQuery ke masing-masing tabel dan tampilan untuk mengontrol aksesnya di BigQuery setelah eksekusi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan dan mencabut akses ke resource, lihat Memberikan akses ke resource.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API BigQuery and Dataform.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API BigQuery and Dataform.
Memberikan peran BigQuery ke tabel atau tampilan
Anda dapat memberikan peran BigQuery ke tabel atau tampilan di Dataform dengan menambahkan blok post_operations
dengan pernyataan DCL GRANT
ke file definisi .sqlx
dari tabel atau tampilan yang dipilih.
Untuk memberikan peran BigQuery ke tabel atau tampilan yang dipilih, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, luaskan direktori
definitions/
.Pilih file definisi
.sqlx
dari tabel atau tampilan yang ingin Anda berikan aksesnya.Dalam file tersebut, masukkan cuplikan kode berikut:
post_operations { GRANT "ROLE_LIST" ON ${self()} TO "USER_LIST" }
Ganti kode berikut:
- ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan
USER_LIST: daftar pengguna yang dipisahkan koma yang diberi peran
Untuk daftar format yang valid, lihat user_list.
Opsional: Klik Format.
Menjalankan tabel atau tampilan.
Jika Anda memberikan akses pada tabel inkremental, hapus pernyataan
GRANT
dari file definisi tabel setelah eksekusi pertama.
Contoh kode berikut menunjukkan peran BigQuery Viewer yang diberikan di tabel kepada pengguna:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer` ON ${self()} TO "user:222larabrown@gmail.com"
}
Mencabut peran BigQuery dari tabel atau tampilan
Anda dapat mencabut peran BigQuery dari tabel atau tampilan dengan menambahkan blok post_operations
dengan pernyataan DCL REVOKE
ke file definisi .sqlx
dari tabel atau tampilan yang dipilih.
Untuk mencabut peran BigQuery dari tabel atau tampilan yang dipilih, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, luaskan direktori
definitions/
.Pilih file definisi
.sqlx
dari tabel atau tampilan yang ingin Anda cabut aksesnya.Di blok
post_operations
, masukkan pernyataanREVOKE
berikut:REVOKE "ROLE_LIST" ON ${self()} TO "USER_LIST"
Ganti kode berikut:
- ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda cabut.
- USER_LIST: daftar pengguna yang dipisahkan koma yang dicabut perannya. Untuk daftar format yang valid, lihat user_list.
Untuk mencabut akses yang diberikan dalam pernyataan
GRANT
dalam file, ganti pernyataanGRANT
dengan pernyataanREVOKE
.Removing the `GRANT` statement without adding the `REVOKE` statement does not revoke access.
Opsional: Klik Format.
Menjalankan tabel atau tampilan.
Jika Anda mencabut akses ke tabel inkremental, hapus pernyataan
REVOKE
dari file definisi tabel setelah eksekusi pertama.
Contoh kode berikut menunjukkan peran BigQuery Viewer yang dicabut dari pengguna pada tabel:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer` ON ${self()} FROM "user:222larabrown@gmail.com"
}
Mengelola peran BigQuery secara kolektif untuk tabel dan tampilan
Untuk mengontrol akses BigQuery ke setiap tabel dan tampilan dalam satu lokasi, Anda dapat membuat file type: "operations"
khusus dengan pernyataan DCL GRANT
dan REVOKE
.
Untuk mengelola akses tabel BigQuery dalam satu file type: "operations"
, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Dataform.
Pilih repositori, lalu pilih ruang kerja.
Di panel Files, di samping
definitions/
, klik menu More.Klik Create file.
Di kolom Add a file path, masukkan nama file, diikuti dengan
.sqlx
setelahdefinitions/
. Contohnya,definitions/table-access.sqlx
Nama file hanya boleh berisi angka, huruf, tanda hubung, dan garis bawah.
Klik Create file.
Di panel Files, luaskan direktori
definitions/
, dan pilih file yang baru dibuat.Dalam file tersebut, masukkan cuplikan kode berikut:
config { type: "operations" } GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST" REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Ganti kode berikut:
- ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan atau cabut.
- RESOURCE_TYPE: jenis resource:
TABLE
atauVIEW
. - RESOURCE_NAME: nama tabel atau tampilan.
- USER_LIST: daftar pengguna yang dipisahkan koma yang memberi atau mencabut peran tersebut. Untuk daftar format yang valid, lihat user_list.
Tambahkan pernyataan
GRANT
danREVOKE
sesuai kebutuhan.Untuk mencabut akses yang diberikan dalam pernyataan
GRANT
dalam file, ganti pernyataanGRANT
dengan pernyataanREVOKE
.Menghapus pernyataan
GRANT
tanpa menambahkan pernyataanREVOKE
tidak akan mencabut akses.
Opsional: Klik Format.
Jalankan file setelah setiap update.
- Jika Anda memberikan atau mencabut akses di tabel inkremental, hapus pernyataan
GRANT
atauREVOKE
dari file setelah eksekusi pertama pernyataan tersebut.
- Jika Anda memberikan atau mencabut akses di tabel inkremental, hapus pernyataan
Langkah selanjutnya
- Untuk mempelajari IAM lebih lanjut, baca Ringkasan IAM.
- Untuk mempelajari peran dan izin lebih lanjut, baca artikel Memahami peran.
- Untuk mempelajari lebih lanjut cara mengelola akses ke resource, lihat Mengelola akses ke project, folder, dan organisasi.