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 izin bigquery.datasets.get.
  • ACL: hanya melihat kontrol akses set data. Nilai ini memerlukan izin bigquery.datasets.getIamPolicy.
  • FULL: melihat metadata dan kontrol akses set data. Nilai ini memerlukan izin bigquery.datasets.get dan bigquery.datasets.getIamPolicy izin.

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 izin bigquery.datasets.update.
  • UPDATE_ACL: hanya memperbarui kontrol akses set data. Nilai ini memerlukan izin bigquery.datasets.setIamPolicy.
  • UPDATE_FULL: memperbarui metadata dan kontrol akses set data. Nilai ini memerlukan izin bigquery.datasets.update dan izin bigquery.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)
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
Nilai default. Menampilkan metadata dan kontrol akses set data.
METADATA
  • bigquery.datasets.get
Menampilkan metadata set data.
ACL
  • bigquery.datasets.getIamPolicy
Menampilkan kontrol akses set data, kolom yang diperlukan, dan kolom dalam resource set data yang hanya berupa output.
FULL
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
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.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 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)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Nilai default. Menampilkan metadata dan kontrol akses set data yang diperbarui.
UPDATE_METADATA
  • bigquery.datasets.update
Menampilkan metadata set data yang diperbarui.
UPDATE_ACL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Menampilkan kontrol akses set data yang diperbarui, kolom yang diperlukan, dan kolom dalam resource set data yang hanya berupa output.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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.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 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)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
Nilai default. Menampilkan metadata dan kontrol akses set data yang diperbarui.
UPDATE_METADATA
  • bigquery.datasets.update
Menampilkan metadata set data yang diperbarui.
UPDATE_ACL
  • bigquery.datasets.setIamPolicy
Menampilkan kontrol akses set data yang diperbarui, kolom yang diperlukan, dan kolom dalam resource set data yang hanya berupa output.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
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.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 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.