Perubahan pada kontrol akses tingkat set data
Jika Anda memilih untuk menerapkan konfigurasi
enable_fine_grained_dataset_acls_option untuk
kontrol akses tingkat set data, izin bigquery.datasets.getIamPolicy
Identity and Access Management (IAM) diperlukan
untuk melihat kontrol akses set data dan untuk membuat kueri
INFORMATION_SCHEMA.OBJECT_PRIVILEGES
tampilan. Izin bigquery.datasets.setIamPolicy diperlukan untuk memperbarui kontrol akses set data atau untuk membuat set data dengan kontrol akses menggunakan API.
Jika Anda tidak memilih untuk menerapkan konfigurasi tersebut, kontrol akses tingkat set data tidak akan berubah.
Memilih untuk menerapkan konfigurasi
Anda dapat memilih untuk menerapkan perubahan izin. Jika Anda memilih
untuk menerapkan konfigurasi tersebut, 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 untuk menerapkan konfigurasi tersebut, tetapkan setelan
konfigurasi enable_fine_grained_dataset_acls_option ke TRUE di tingkat
organisasi atau project. Jika Anda ingin memilih untuk tidak
menerapkan konfigurasi tersebut setelah memilih untuk menerapkannya, tetapkan
setelan konfigurasi enable_fine_grained_dataset_acls_option ke FALSE 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
ALTER ORGANIZATION SET OPTIONS pernyataan DDL.
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);
Mengonfigurasi 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 project_id tidak ditentukan, 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 tingkat project:
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);
Perubahan pada peran khusus
Jika Anda memilih untuk menerapkan perubahan izin, peran khusus yang
memberikan izin bigquery.datasets.get, bigquery.datasets.create, atau
bigquery.datasets.update dan tidak memberikan izin
bigquery.datasets.getIamPolicy atau bigquery.datasets.setIamPolicy
juga akan terpengaruh.
Peran khusus 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, jika Anda ingin
mempertahankan fungsi peran khusus yang ada. Jika peran khusus Anda hanya perlu melihat atau
memperbarui metadata set data, gunakan parameter dataset_view dan
update_mode baru.
Peran pengguna bawaan BigQuery standar tidak terpengaruh oleh perubahan
ini. Secara khusus, roles/bigquery.admin, roles/bigquery.dataOwner, roles/bigquery.dataEditor, roles/bigquery.dataViewer, roles/bigquery.metadataViewer, roles/bigquery.user, roles/bigquery.studioAdmin, dan
roles/bigquery.securityAdmin sudah memberikan izin
bigquery.datasets.getIamPolicy atau bigquery.datasets.setIamPolicy yang
sesuai. Namun, peran bawaan lainnya yang hanya memerlukan akses
metadata set data tidak menyertakan izin bigquery.datasets.getIamPolicy
atau bigquery.datasets.setIamPolicy. Peran ini mencakup
peran rutin yang diotorisasi, peran metadata
untuk layanan lain, dan beberapa
peran agen layanan.
Perubahan pada perintah alat command line bq
Jika Anda memilih untuk menerapkan konfigurasi 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 kontrol akses atau metadata 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.getdanbigquery.datasets.getIamPolicyizin.
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.updatedan izinbigquery.datasets.setIamPolicy.
Perubahan pada pernyataan bahasa kontrol data (DCL)
Jika Anda memilih untuk menerapkan konfigurasi lebih awal, izin berikut diperlukan untuk
menjalankan GRANT dan REVOKE pernyataan pada set data menggunakan bahasa kontrol data
(DCL):
bigquery.datasets.setIamPolicy
Perubahan pada kueri tampilan INFORMATION_SCHEMA
Jika Anda memilih untuk menerapkan konfigurasi lebih awal, izin bigquery.datasets.getIamPolicy
diperlukan untuk membuat kueri tampilan
INFORMATION_SCHEMA.OBJECT_PRIVILEGES.
Perubahan pada metode API
Setelah Anda memilih untuk menerapkan konfigurasi lebih awal, metode set data REST v2 API berikut akan terpengaruh.
Metode datasets.get
Metode datasets.get memiliki
parameter kueri tambahan
bernama dataset_view.
Parameter ini memberi Anda lebih banyak kontrol atas informasi yang
ditampilkan oleh metode datasets.get. Daripada selalu menampilkan
kontrol akses dan metadata, parameter dataset_view memungkinkan Anda
menentukan apakah hanya menampilkan metadata, hanya kontrol akses, atau
keduanya.
Kolom access dalam resource set data
berisi kontrol akses set data. Kolom lainnya seperti friendlyName, description, dan
labels mewakili metadata set data.
Tabel berikut menunjukkan izin dan respons API yang diperlukan 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 yang diperlukan, dan kolom dalam resource set data yang hanya berupa output. |
FULL |
|
Menampilkan metadata dan kontrol akses set data. |
Jika Anda tidak memilih untuk menerapkan konfigurasi lebih awal, atau jika
Anda memilih untuk tidak menerapkan konfigurasi tersebut setelah memilih
untuk menerapkannya, Anda dapat menggunakan parameter dataset_view dengan
nilai METADATA atau ACL. Nilai FULL dan
DATASET_VIEW_UNSPECIFIED (atau kosong) ditetapkan secara default ke
perilaku sebelumnya; izin bigquery.datasets.get memungkinkan Anda
mendapatkan metadata dan kontrol akses.
Contoh
Contoh berikut mengirimkan permintaan GET dengan parameter dataset_view yang ditetapkan ke METADATA:
GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1Ganti 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 kueri
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 hanya memperbarui metadata, hanya
kontrol akses, atau keduanya.
Kolom access dalam resource set data
berisi kontrol akses set data. Kolom lainnya seperti friendlyName, description, dan
labels mewakili metadata set data.
Tabel berikut menunjukkan izin dan respons API yang diperlukan 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 set data yang diperbarui, kolom yang diperlukan, dan kolom dalam resource set data yang hanya berupa output. |
UPDATE_FULL |
|
Menampilkan metadata dan kontrol akses set data yang diperbarui. |
Jika Anda tidak memilih untuk menerapkan konfigurasi lebih awal, atau
jika Anda memilih untuk tidak menerapkan konfigurasi tersebut setelah memilih
untuk menerapkannya, BigQuery akan ditetapkan secara 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.1Ganti 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 kueri
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 hanya memperbarui metadata, hanya
kontrol akses, atau keduanya.
Kolom access dalam resource set data
berisi kontrol akses set data. Kolom lainnya seperti friendlyName, description, dan
labels mewakili metadata set data.
Tabel berikut menunjukkan izin dan respons API yang diperlukan 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 set data yang diperbarui, kolom yang diperlukan, dan kolom dalam resource set data yang hanya berupa output. |
UPDATE_FULL |
|
Menampilkan metadata dan kontrol akses set data yang diperbarui. |
Jika Anda tidak memilih untuk menerapkan konfigurasi lebih awal, atau
jika Anda memilih untuk tidak menerapkan konfigurasi tersebut setelah memilih
untuk menerapkannya, BigQuery akan ditetapkan secara 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.1Ganti 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 menerapkan konfigurasi lebih awal dan menggunakan datasets.insert metode,
BigQuery akan memverifikasi
bahwa izin bigquery.datasets.create dan bigquery.datasets.setIamPolicy
diberikan kepada pengguna untuk membuat set data dengan kontrol akses.
Jika Anda menggunakan API untuk membuat set data tanpa kontrol akses, hanya izin bigquery.datasets.create yang diperlukan.