Dataform dan BigQuery menggunakan IAM untuk kontrol akses. Untuk mengetahui informasi selengkapnya tentang peran dan izin Dataform di IAM, lihat Mengontrol akses dengan IAM.
Saat menjalankan tabel atau tampilan, Dataform akan membuat resource di BigQuery. Selama pengembangan di Dataform, Anda dapat memberikan peran BigQuery ke setiap tabel dan tampilan untuk mengontrol aksesnya di BigQuery setelah dieksekusi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan dan mencabut akses ke resource, lihat Memberikan akses ke resource.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
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
tabel atau tampilan yang ingin Anda berikan akses.Di file tersebut, masukkan cuplikan kode berikut:
post_operations { GRANT "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST" }
Ganti kode berikut:
ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan.
RESOURCE_TYPE:
TABLE
atauVIEW
.USER_LIST: daftar pengguna yang dipisahkan koma yang diberi peran.
Untuk daftar format yang valid, lihat user_list.
Opsional: Klik Format.
Jalankan 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 pada tabel kepada pengguna:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON TABLE ${self()}
TO "user:222larabrown@gmail.com"
}
Cabut 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
tabel atau tampilan yang aksesnya ingin Anda cabut.Di blok
post_operations
, masukkan pernyataanREVOKE
berikut:REVOKE "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST"
Ganti kode berikut:
- ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda cabut.
- RESOURCE_TYPE:
TABLE
atauVIEW
. - USER_LIST: daftar pengguna yang dipisahkan koma yang perannya dicabut. Untuk daftar format yang valid, lihat user_list.
Untuk mencabut akses yang diberikan dalam pernyataan
GRANT
dalam file, ganti pernyataanGRANT
dengan pernyataanREVOKE
.Opsional: Klik Format.
Jalankan 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 di tabel:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer`
ON TABLE ${self()}
FROM "user:222larabrown@gmail.com"
}
Mengelola peran BigQuery secara kolektif untuk tabel dan tampilan
Untuk mengontrol akses BigQuery ke setiap tabel dan tampilan di 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/
, lalu pilih file yang baru dibuat.Di 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:
TABLE
atauVIEW
. - RESOURCE_NAME: nama tabel atau tampilan.
- USER_LIST: daftar pengguna yang dipisahkan koma yang mendapatkan atau dicabut peran. 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 pada tabel inkremental, hapus pernyataan
GRANT
atauREVOKE
dari file setelah eksekusi pertama pernyataan.
- Jika Anda memberikan atau mencabut akses pada tabel inkremental, hapus pernyataan
Langkah selanjutnya
- Untuk mempelajari IAM lebih lanjut, lihat ringkasan IAM.
- Untuk mempelajari peran dan izin lebih lanjut, lihat Memahami peran.
- Untuk mempelajari lebih lanjut cara mengelola akses ke resource, lihat Mengelola akses ke project, folder, dan organisasi.