Perubahan pada kontrol akses tingkat set data
Mulai 15 September 2025, izin Identity and Access Management (IAM) bigquery.datasets.getIamPolicy
diperlukan untuk melihat kontrol akses set data dan membuat kueri tampilan
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
. Izin bigquery.datasets.setIamPolicy
diperlukan untuk memperbarui kontrol akses set data atau membuat set data dengan kontrol akses menggunakan API.
Memilih untuk menerapkan kebijakan lebih awal
Sebelum 15 September 2025, Anda dapat memilih untuk menerapkan perubahan izin
secara dini. Jika Anda memilih untuk ikut serta, izin bigquery.datasets.getIamPolicy
diperlukan untuk mendapatkan kontrol akses set data, dan
izin bigquery.datasets.setIamPolicy
diperlukan untuk memperbarui kontrol akses set data atau membuat set data dengan kontrol akses menggunakan API.
Untuk memilih penerapan awal, tetapkan setelan konfigurasi enable_fine_grained_dataset_acls_option
ke TRUE
di tingkat organisasi atau project. Untuk mengetahui petunjuk tentang cara mengaktifkan setelan konfigurasi, lihat Mengelola setelan konfigurasi.
Contoh setelan konfigurasi
Contoh berikut menunjukkan cara menetapkan dan menghapus
setelan konfigurasi enable_fine_grained_dataset_acls_option
.
Mengonfigurasi setelan organisasi
Untuk mengonfigurasi setelan organisasi, gunakan
pernyataan DDL ALTER ORGANIZATION SET OPTIONS
.
Contoh berikut menetapkan enable_fine_grained_dataset_acls_option
ke TRUE
di tingkat organisasi:
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
Ganti REGION dengan region yang terkait dengan organisasi Anda, misalnya, us
atau europe-west6
.
Contoh berikut menghapus setelan enable_fine_grained_dataset_acls_option
tingkat organisasi:
ALTER ORGANIZATION SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Konfigurasikan setelan project
Untuk mengonfigurasi setelan project, gunakan
pernyataan DDL ALTER PROJECT SET OPTIONS
.
Pernyataan DDL ALTER PROJECT SET OPTIONS
secara opsional menerima variabel project_id
. Jika tidak ditentukan, project_id
akan ditetapkan secara default ke project saat ini tempat kueri berjalan.
Contoh berikut menetapkan enable_fine_grained_dataset_acls_option
ke TRUE
.
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);
Ganti PROJECT_ID dengan project ID Anda.
Contoh berikut menghapus setelan enable_fine_grained_dataset_acls_option
level project:
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Perubahan pada peran khusus
Perubahan pada izin yang diperlukan ini memengaruhi peran kustom yang ada yang memberikan izin
bigquery.datasets.get
, bigquery.datasets.create
, atau
bigquery.datasets.update
dan juga tidak memberikan izin
bigquery.datasets.getIamPolicy
atau bigquery.datasets.setIamPolicy
.
Setiap peran kustom yang hanya menyertakan izin bigquery.datasets.get
,
bigquery.datasets.update
, atau bigquery.datasets.create
harus
diperbarui untuk menyertakan izin bigquery.datasets.getIamPolicy
atau
bigquery.datasets.setIamPolicy
paling lambat 15 September 2025, jika Anda ingin
mempertahankan fungsi peran kustom yang ada. Jika peran kustom Anda
hanya perlu melihat atau memperbarui metadata set data, gunakan parameter dataset_view
dan
update_mode
baru.
Peran bawaan BigQuery tidak terpengaruh oleh perubahan ini. Semua peran bawaan yang memberikan izin bigquery.datasets.get
juga memberikan izin bigquery.datasets.getIamPolicy
. Semua peran yang telah ditetapkan yang
memberikan izin bigquery.datasets.update
juga memberikan
izin bigquery.datasets.setIamPolicy
.
Perubahan pada perintah alat command line bq
Jika Anda memilih untuk menerapkannya lebih awal, perintah alat bq berikut akan terpengaruh.
bq show
Anda dapat menggunakan perintah bq show
dengan flag berikut:
--dataset_view={METADATA|ACL|FULL}
- Menentukan cara menerapkan izin saat Anda melihat metadata atau kontrol akses set data.
Gunakan salah satu nilai berikut:
METADATA
: hanya melihat metadata set data. Nilai ini memerlukan izinbigquery.datasets.get
.ACL
: hanya melihat kontrol akses set data. Nilai ini memerlukan izinbigquery.datasets.getIamPolicy
.FULL
: melihat metadata dan kontrol akses set data. Nilai ini memerlukan izinbigquery.datasets.get
dan izinbigquery.datasets.getIamPolicy
.
bq update
Anda dapat menggunakan perintah bq update
dengan flag berikut:
--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}
- Menentukan cara menerapkan izin saat Anda memperbarui kontrol akses atau metadata set data.
Gunakan salah satu nilai berikut:
UPDATE_METADATA
: hanya memperbarui metadata set data. Nilai ini memerlukan izinbigquery.datasets.update
.UPDATE_ACL
: hanya memperbarui kontrol akses set data. Nilai ini memerlukan izinbigquery.datasets.setIamPolicy
.UPDATE_FULL
: memperbarui metadata dan kontrol akses set data. Nilai ini memerlukan izinbigquery.datasets.update
dan izinbigquery.datasets.setIamPolicy
.
Perubahan pada pernyataan bahasa kontrol data (DCL)
Jika Anda memilih untuk menerapkannya lebih awal, izin berikut diperlukan untuk
menjalankan pernyataan GRANT
dan REVOKE
pada set data menggunakan bahasa kontrol data
(DCL):
bigquery.datasets.setIamPolicy
Perubahan pada kueri tampilan INFORMATION_SCHEMA
Jika Anda memilih untuk menerapkannya lebih awal, izin bigquery.datasets.getIamPolicy
diperlukan untuk membuat kueri
tampilan
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
.
Perubahan pada metode API
Setelah Anda memilih untuk menerapkannya lebih awal, metode set data REST v2 API berikut akan terpengaruh.
Metode datasets.get
Metode datasets.get
memiliki
parameter jalur tambahan
bernama dataset_view
.
Parameter ini memberi Anda kontrol lebih besar atas informasi yang ditampilkan oleh
metode datasets.get
. Daripada selalu menampilkan kontrol akses dan metadata, parameter dataset_view
memungkinkan Anda menentukan apakah akan menampilkan hanya metadata, hanya kontrol akses, atau keduanya.
Kolom access
di resource set data berisi kontrol akses set data. Kolom lainnya seperti friendlyName
,
description
, dan labels
mewakili metadata set data.
Tabel berikut menunjukkan izin yang diperlukan dan respons API untuk
berbagai nilai yang didukung oleh parameter dataset_view
:
Nilai parameter | Izin diperlukan | Respons API |
---|---|---|
DATASET_VIEW_UNSPECIFIED (atau kosong) |
|
Nilai default. Menampilkan metadata dan kontrol akses set data. |
METADATA |
|
Menampilkan metadata set data. |
ACL |
|
Menampilkan kontrol akses set data, kolom wajib, dan kolom di resource set data yang hanya berupa output. |
FULL |
|
Menampilkan metadata dan kontrol akses set data. |
Jika Anda tidak memilih untuk menerapkan lebih awal, atau jika Anda memilih untuk tidak menerapkan setelah memilih untuk menerapkan, Anda
dapat menggunakan parameter dataset_view
dengan nilai METADATA
atau ACL
. Nilai
FULL
dan DATASET_VIEW_UNSPECIFIED
(atau kosong) secara default menggunakan perilaku
sebelumnya; izin bigquery.datasets.get
memungkinkan Anda mendapatkan metadata
dan kontrol akses.
Contoh
Contoh berikut mengirimkan permintaan GET
dengan parameter dataset_view
ditetapkan ke METADATA
:
GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1
Ganti kode berikut:
- YOUR_PROJECT: nama project Anda
- YOUR_DATASET: nama set data
- YOUR_API_KEY: Kunci API Anda
Metode datasets.update
Metode datasets.update
memiliki parameter jalur
tambahan bernama update_mode
.
Parameter ini memberi Anda lebih banyak kontrol atas kolom yang diperbarui oleh
metode datasets.update
. Daripada selalu mengizinkan pembaruan pada kontrol akses dan metadata, parameter update_mode
memungkinkan Anda menentukan apakah akan memperbarui metadata saja, kontrol akses saja, atau keduanya.
Kolom access
di resource set data berisi kontrol akses set data. Kolom lainnya seperti friendlyName
,
description
, dan labels
mewakili metadata set data.
Tabel berikut menunjukkan izin yang diperlukan dan respons API untuk
berbagai nilai yang didukung oleh parameter update_mode
:
Nilai parameter | Izin diperlukan | Respons API |
---|---|---|
UPDATE_MODE_UNSPECIFIED (atau kosong) |
|
Nilai default. Menampilkan metadata dan kontrol akses set data yang diperbarui. |
UPDATE_METADATA |
|
Menampilkan metadata set data yang diperbarui. |
UPDATE_ACL |
|
Menampilkan kontrol akses, kolom wajib, dan kolom dalam resource set data yang diperbarui dan hanya berupa output. |
UPDATE_FULL |
|
Menampilkan metadata dan kontrol akses set data yang diperbarui. |
Jika Anda tidak memilih untuk menerapkan kebijakan awal, atau jika Anda memilih untuk tidak menerapkannya setelah memilih untuk menerapkannya,
BigQuery akan menetapkan setelan default ke perilaku
sebelumnya; izin bigquery.datasets.update
memungkinkan Anda memperbarui
metadata dan kontrol akses.
Contoh
Contoh berikut mengirimkan permintaan PUT
dengan
parameter update_mode
yang ditetapkan ke METADATA
:
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1
Ganti kode berikut:
- YOUR_PROJECT: nama project Anda
- YOUR_DATASET: nama set data
- YOUR_API_KEY: nama kunci API Anda
Metode datasets.patch
Metode datasets.patch
memiliki parameter jalur
tambahan bernama update_mode
.
Parameter ini memberi Anda lebih banyak kontrol atas kolom yang diperbarui oleh
metode datasets.patch
. Daripada selalu mengizinkan pembaruan pada kontrol akses dan metadata, parameter update_mode
memungkinkan Anda menentukan apakah akan memperbarui metadata saja, kontrol akses saja, atau keduanya.
Kolom access
di resource set data berisi kontrol akses set data. Kolom lainnya seperti friendlyName
,
description
, dan labels
mewakili metadata set data.
Tabel berikut menunjukkan izin yang diperlukan dan respons API untuk
berbagai nilai yang didukung oleh parameter update_mode
:
Nilai parameter | Izin diperlukan | Respons API |
---|---|---|
UPDATE_MODE_UNSPECIFIED (atau kosong) |
|
Nilai default. Menampilkan metadata dan kontrol akses set data yang diperbarui. |
UPDATE_METADATA |
|
Menampilkan metadata set data yang diperbarui. |
UPDATE_ACL |
|
Menampilkan kontrol akses, kolom wajib, dan kolom dalam resource set data yang diperbarui dan hanya berupa output. |
UPDATE_FULL |
|
Menampilkan metadata dan kontrol akses set data yang diperbarui. |
Jika Anda tidak memilih untuk menerapkan kebijakan awal, atau jika Anda memilih untuk tidak menerapkannya setelah memilih untuk menerapkannya,
BigQuery akan menetapkan setelan default ke perilaku
sebelumnya; izin bigquery.datasets.update
memungkinkan Anda memperbarui
metadata dan kontrol akses.
Contoh
Contoh berikut mengirimkan permintaan PUT
dengan
parameter update_mode
yang ditetapkan ke METADATA
:
PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1
Ganti kode berikut:
- YOUR_PROJECT: nama project Anda
- YOUR_DATASET: nama set data
- YOUR_API_KEY: nama kunci API Anda
Metode datasets.insert
Jika Anda memilih untuk menerapkannya lebih awal dan menggunakan metode datasets.insert
,
untuk membuat set data dengan kontrol akses, BigQuery akan memverifikasi
bahwa izin bigquery.datasets.create
dan bigquery.datasets.setIamPolicy
diberikan kepada pengguna.
Jika Anda menggunakan API untuk membuat set data tanpa kontrol akses, hanya izin bigquery.datasets.create
yang diperlukan.