Tabel Virtual OBJECT_PRIVILEGES
Tabel virtual INFORMATION_SCHEMA.OBJECT_PRIVILEGES
berisi metadata tentang binding kontrol akses yang secara eksplisit ditetapkan pada objek BigQuery.
Tabel virtual ini tidak berisi metadata tentang binding kontrol akses yang diwarisi.
Izin yang diperlukan
Untuk membuat kueri tabel virtual INFORMATION_SCHEMA.OBJECT_PRIVILEGES
, Anda memerlukan izin Identity and Access Management (IAM) berikut:
bigquery.datasets.get
untuk set data.bigquery.tables.getIamPolicy
untuk tabel dan tabel virtual.
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Skema
Saat Anda membuat kueri tabel virtual INFORMATION_SCHEMA.OBJECT_PRIVILEGES
, hasil kueri akan berisi satu baris untuk setiap binding kontrol akses untuk suatu resource.
Tabel virtual INFORMATION_SCHEMA.OBJECT_PRIVILEGES
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
OBJECT_CATALOG |
STRING |
Project ID dari project yang berisi resource. |
OBJECT_SCHEMA |
STRING |
Nama set data yang berisi resource. Ini adalah null untuk jenis resource set data. |
OBJECT_NAME |
STRING |
Nama tabel, tabel virtual, atau set data yang menjadi tujuan penerapan kebijakan. |
OBJECT_TYPE |
STRING |
Jenis resource, seperti SCHEMA (set data), TABLE , VIEW , dan EXTERNAL .
|
PRIVLEGE_TYPE |
STRING |
ID peran, seperti roles/bigquery.dataEditor . |
GRANTEE |
STRING |
Jenis pengguna dan pengguna yang diberi peran. |
Cakupan dan sintaksis
Kueri terhadap tabel virtual ini harus menyertakan penentu region. Project ID bersifat opsional. Jika project ID tidak ditentukan, project tempat kueri dijalankan akan digunakan. Tabel berikut menjelaskan cakupan wilayah untuk tabel virtual ini:
Nama tabel virtual | Cakupan resource | Cakupan region |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES |
Level project | REGION |
- Opsional:
PROJECT_ID
: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan. REGION
: nama region set data apa pun. Misalnya,region-us
.
Contoh
-- Returns metadata for the access control bindings for mydataset.
SELECT * FROM myproject.`region-us`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES
WHERE object_name = "mydataset";
Batasan
- Kueri
OBJECT_PRIVILEGES
harus berisi klausa WHERE yang membatasi kueri ke satu set data, tabel, atau tabel virtual. - Kueri untuk mengambil metadata kontrol akses bagi set data harus menentukan
object_name
. - Kueri untuk mengambil metadata kontrol akses untuk tabel atau tabel virtual harus menentukan
object_name
DANobject_schema
.
Contoh
Contoh berikut mengambil semua kolom dari tabel virtual INFORMATION_SCHEMA.OBJECT_PRIVILEGES
.
Untuk menjalankan kueri terhadap project selain project tempat kueri berjalan, tambahkan project ID ke region dalam format berikut: `project_id`.`region_id`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES
.
Contoh berikut mendapatkan semua metadata kontrol akses untuk set data mydataset
di project mycompany
:
SELECT *
FROM mycompany.`region-us`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES
WHERE object_name = "mydataset"
Hasilnya akan terlihat seperti berikut ini:
+----------------+---------------+-------------+-------------+---------------------------+-----------------------------------+ | object_catalog | object_schema | object_name | object_type | privilege_type | grantee | +----------------+---------------+-------------+-------------+---------------------------+-----------------------------------+ | mycompany | NULL | mydataset | SCHEMA | roles/bigquery.dataEditor | projectEditor:mycompany | +----------------+---------------+-------------+-------------+---------------------------+-----------------------------------+ | mycompany | NULL | mydataset | SCHEMA | roles/bigquery.dataOwner | projectOwner:mycompany | +----------------+---------------+-------------+-------------+---------------------------+-----------------------------------+ | mycompany | NULL | mydataset | SCHEMA | roles/bigquery.dataOwner | user:cloudysanfrancisco@gmail.com | +----------------+---------------+-------------+-------------+---------------------------+-----------------------------------+ | mycompany | NULL | mydataset | SCHEMA | roles/bigquery.dataViwer | projectViewer:mycompany | +----------------+---------------+-------------+-------------+---------------------------+-----------------------------------+
Contoh berikut mendapatkan semua informasi kontrol akses untuk tabel testdata
dalam set data mydataset
:
SELECT *
FROM mycompany.`region-us`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES
WHERE object_schema = "mydataset" AND object_name = "testdata"
Hasilnya akan terlihat seperti berikut ini:
+----------------+---------------+--------------+-------------+----------------------+------------------------------------+ | object_catalog | object_schema | object_name | object_type | privilege_type | grantee | +----------------+---------------+--------------+-------------+----------------------+------------------------------------+ | mycompany | mydataset | testdata | TABLE | roles/bigquery.admin | user:baklavainthebalkans@gmail.com | +----------------+---------------+--------------+-------------+----------------------+------------------------------------+