Tampilan yang diotorisasi
Dokumen ini menjelaskan cara membuat tampilan yang diotorisasi dan tampilan terwujud yang diotorisasi di BigQuery. Sebagai administrator data, Anda dapat membuat tampilan yang diotorisasi untuk membagikan subset data dalam set data kepada pengguna dan grup (akun utama) tertentu. Akun utama dapat melihat data yang Anda bagikan dan menjalankan kueri di dalamnya, tetapi mereka tidak dapat mengakses set data sumber secara langsung.
Jenis tampilan
Tampilan logis adalah jenis tampilan default untuk BigQuery, dan tampilan terwujud adalah tampilan yang diprakomputasi yang secara berkala meng-cache hasil kueri untuk meningkatkan performa dan efisiensi.
Tampilan yang diotorisasi untuk tampilan logis disebut tampilan yang diotorisasi, tetapi tampilan yang diotorisasi untuk tampilan terwujud disebut tampilan terwujud yang diotorisasi.
Jika tampilan logis bergantung pada kueri yang besar atau mahal secara komputasi, Anda dapat membuat tampilan terwujud sebagai gantinya. Untuk memahami kasus penggunaan tampilan logis dan terwujud, lihat Ringkasan tampilan logis dan terwujud.
Langkah-langkah tingkat tinggi untuk membuat tampilan yang diotorisasi
Untuk membuat dan membagikan tampilan, tinjau langkah-langkah tingkat tinggi ini, yang sama untuk tampilan logis yang diotorisasi dan tampilan terwujud yang diotorisasi.
- Buat set data untuk berisi data sumber Anda.
- Jalankan kueri untuk memuat data ke dalam tabel tujuan di set data sumber.
- Buat set data untuk berisi tampilan yang diotorisasi.
- Buat tampilan yang diotorisasi dari kueri SQL yang membatasi kolom yang dapat dilihat oleh analis data Anda dalam hasil kueri.
- Berikan izin kepada analis data Anda untuk menjalankan tugas kueri.
- Berikan akses kepada analis data Anda ke set data yang berisi tampilan yang diotorisasi.
- Berikan akses tampilan yang diotorisasi ke set data sumber.
Alternatif
Meskipun tampilan yang diotorisasi bersifat fleksibel dan skalabel, salah satu metode berikut mungkin lebih sesuai untuk kasus penggunaan Anda:
- Tetapkan kebijakan tingkat baris pada tabel.
- Tetapkan kebijakan tingkat kolom pada tabel.
- Simpan data dalam tabel terpisah.
- Bagikan semua tampilan dalam set data (set data yang diotorisasi).
Menggunakan keamanan tingkat baris atau tingkat kolom, atau tabel terpisah
Dengan menetapkan kebijakan akses tingkat baris pada tabel, atau dengan membuat tabel terpisah untuk menyimpan data sensitif, administrator data dapat membatasi kemampuan pengguna untuk melihat data tersebut. Menyimpan data dalam tabel terpisah akan mengisolasi data dan menghapus kemampuan untuk melihat jumlah baris yang ada dalam tabel.
Selain itu, dengan membuat dan menerapkan tag kebijakan, administrator data dapat membatasi kemampuan pengguna untuk melihat kolom dalam tabel.
Menyimpan data dalam tabel terpisah adalah metode yang paling aman, tetapi paling tidak fleksibel. Menetapkan kebijakan tingkat baris bersifat fleksibel dan aman, sedangkan berbagi tampilan yang diotorisasi bersifat fleksibel dan memberikan performa terbaik.
Untuk membandingkan metode ini secara mendetail, lihat referensi berikut:
- Perbandingan tampilan yang diotorisasi, keamanan tingkat baris, dan tabel terpisah
- Pengantar keamanan tingkat baris
- Contoh kasus penggunaan untuk keamanan tingkat baris
- Pengantar kontrol akses tingkat kolom
Membagikan semua tampilan dalam set data
Jika ingin memberikan akses koleksi tampilan ke set data tanpa harus memberi otorisasi setiap tampilan tertentu, Anda dapat mengelompokkan tampilan ke dalam set data, lalu memberikan set data yang berisi akses tampilan ke set data yang berisi data.
Selanjutnya, Anda dapat memberikan akses kepada akun utama ke set data yang berisi grup tampilan, atau ke setiap tampilan dalam set data, sesuai kebutuhan. Set data yang memiliki akses ke set data lain disebut set data yang diotorisasi. Set data yang memberikan otorisasi pada set data lain untuk mengakses datanya disebut set data bersama.
Daftar kontrol akses set data dapat memiliki hingga total 2.500 resource yang diotorisasi, termasuk tampilan yang diotorisasi, set data yang diotorisasi, dan fungsi yang diotorisasi. Jika Anda melebihi batas ini karena banyaknya tampilan yang diotorisasi, pertimbangkan untuk mengelompokkan tampilan ke dalam set data yang diotorisasi. Sebagai praktik terbaik, kelompokkan tampilan terkait ke dalam set data yang diotorisasi saat Anda mendesain arsitektur BigQuery baru, terutama arsitektur multi-tenant.
Untuk mengetahui informasi selengkapnya, lihat Set data yang diotorisasi dan Mengotorisasi set data.
Batasan
- Saat Anda membuat tampilan yang diotorisasi atau tampilan terwujud yang diotorisasi di set data lain, set data data sumber dan set data tampilan yang diotorisasi harus berada di lokasi regional yang sama .
- Saat Anda menghapus tampilan yang diotorisasi, perlu waktu hingga 24 jam untuk menghapus tampilan yang diotorisasi dari daftar tampilan. Selama waktu ini, Anda tidak dapat mengakses tampilan yang diotorisasi, tetapi tampilan yang diotorisasi yang dihapus dapat muncul dalam daftar tampilan, dan dihitung terhadap batas tampilan yang diotorisasi yang diotorisasi. Batas ini dapat mencegah pembuatan tampilan tambahan yang diotorisasi jika tampilan baru yang diotorisasi akan melebihi batas tersebut.
- Anda tidak dapat membuat tampilan yang diotorisasi di replika sekunder. Untuk mengetahui informasi selengkapnya, lihat Perilaku resource dalam set data replikasi.
Sebelum memulai
Berikan peran Identity and Access Management (IAM) yang memberi pengguna izin yang diperlukan untuk membuat kueri tampilan yang diotorisasi atau tampilan terwujud yang diotorisasi yang Anda bagikan.
Tampilan yang diotorisasi dan Kontrol Layanan VPC
Saat menggunakan tampilan yang diotorisasi dalam perimeter Kontrol Layanan VPC, aturan ingress yang memungkinkan akun utama mengakses project yang berisi tampilan juga harus menyertakan akses ke project mana pun yang berisi data sumber tempat tampilan mengakses data. Akun utama tidak memerlukan izin Identity and Access Management pada project data sumber, tetapi aturan ingress harus mengizinkan akses ke BigQuery di project sumber data selain project yang berisi tampilan.
Peran yang diperlukan
Untuk membuat atau memperbarui tampilan yang diotorisasi, Anda memerlukan izin ke set data yang berisi tampilan dan ke set data yang memberikan akses ke tampilan.
Anda juga perlu memberikan akses kepada pengguna atau grup ke project dan set data yang berisi tampilan.
Izin pada set data yang berisi tampilan
Tampilan diperlakukan sebagai resource tabel di BigQuery, sehingga pembuatan tampilan memerlukan izin yang sama seperti pembuatan tabel. Anda juga harus memiliki izin untuk membuat kueri setiap tabel yang direferensikan oleh kueri SQL tampilan.
- Untuk membuat set data, Anda memerlukan izin IAM
bigquery.datasets.createdi project. - Untuk membuat tampilan, Anda memerlukan izin IAM
bigquery.tables.createdi set data. Peran IAM yang telah ditetapkanroles/bigquery.dataEditormencakup izin yang diperlukan untuk membuat tampilan. - Untuk membuat tampilan yang membuat kueri tabel yang tidak dapat Anda akses, Anda harus diberi izin
bigquery.tables.getDatapada tabel yang dikueri oleh tampilan.
Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.
Izin pada set data yang berisi data sumber
Untuk mengotorisasi tampilan, tampilan diberi izin baca ke set data data sumber.
Untuk melakukan otorisasi ini, Anda memerlukan izin berikut pada set data yang berisi data sumber:
bigquery.datasets.updatedatasets.getIamPolicydatasets.setIamPolicy
Untuk izin tambahan yang diperlukan untuk memperbarui set data, lihat izin yang diperlukan.
Izin pengguna pada project dan set data untuk tampilan
Untuk membagikan tampilan yang diotorisasi kepada pengguna atau grup, Anda harus memberikan izin IAM berikut kepada pengguna atau grup:
Peran IAM
roles/bigquery.jobUser(atauroles/bigquery.user) ke project tempat tugas kueri berjalan (project penagihan atau eksekusi). Peran ini memberikan izinbigquery.jobs.createyang diperlukan untuk menjalankan tugas kueri terhadap tampilan.Peran IAM
roles/bigquery.jobUserhanya diperlukan untuk project tempat Anda ingin menjalankan tugas, terlepas dari tempat tampilan dihosting.Peran IAM
roles/bigquery.dataViewerke set data yang berisi tampilan yang diotorisasi. Peran ini memberikan izinbigquery.tables.getData, yang diperlukan untuk membuat kueri tampilan.Jika pengguna membuat kueri tampilan yang diotorisasi dari project terpisah, mereka tidak memerlukan peran
roles/bigquery.jobUserdi project yang menghosting tampilan. Mereka memerlukan peranroles/bigquery.dataViewerdi set data yang berisi tampilan, dan mereka memerlukan peranroles/bigquery.jobUserdi project tempat kueri berjalan.
Menggunakan tampilan yang diotorisasi
Bagian berikut menjelaskan cara menggunakan tampilan yang diotorisasi dan tampilan terwujud yang diotorisasi.
Membuat tampilan yang diotorisasi
Untuk membuat tampilan yang diotorisasi, pilih salah satu opsi berikut. Untuk langkah-langkah lengkap guna mengotorisasi, membagikan, dan menghapus tampilan yang diotorisasi, lihat tutorial Membuat tampilan yang diotorisasi.
Konsol
Buka halaman BigQuery.
Di editor kueri, ketik kueri yang ingin Anda gunakan sebagai dasar tampilan yang diotorisasi.
Klik Save > Save view.
Di dialog Save view, lakukan hal berikut:
Untuk Project, ketik project tempat menyimpan tampilan.
Untuk Dataset, ketik set data tempat menyimpan tampilan. Set data ini harus berbeda dengan set data yang digunakan dalam kueri sumber.
Untuk Table, ketik nama tampilan.
Klik Save.
Berikan izin yang diperlukan kepada pengguna yang dapat menggunakan tampilan yang diotorisasi.
Di panel Explorer, pilih set data yang digunakan dalam kueri sumber.
Di panel Details, klik Sharing > Authorize views.
Di panel Authorized views, untuk Authorized view, ketik nama tampilan yang sepenuhnya memenuhi syarat, dalam format PROJECT_ID.DATASET_ID.VIEW_NAME.
Klik Add authorization.
Terraform
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk menerapkan konfigurasi Terraform di a Google Cloud project, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan default Google Cloud project tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf—misalnyamain.tf. Dalam tutorial ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tfyang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Anda Google Cloud untuk melihat hasilnya. Di Google Cloud konsol, buka resource Anda di UI untuk memastikan Terraform telah membuat atau memperbaruinya.
Mengelola pengguna atau grup untuk tampilan yang diotorisasi
Setelah mengotorisasi tampilan, Anda dapat mempertahankan akses ke tampilan tersebut dengan menyelesaikan tugas berikut untuk set data, tabel, atau tampilan:
- Melihat kebijakan akses.
- Memberikan akses.
- Mencabut akses.
- Menolak akses.
Untuk mengetahui informasi selengkapnya, lihat Mengontrol akses ke resource menggunakan IAM.
Menghapus otorisasi ke tampilan
Untuk menghapus otorisasi ke tampilan, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery di Google Cloud konsol.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Expand left pane untuk membuka panel.
Di panel Explorer, luaskan project Anda, klik Datasets, dan lalu pilih set data.
Klik Overview > Tables, lalu pilih tabel.
Klik Sharing > Authorize views.
Klik untuk Remove authorization.
Klik Close.
bq
Untuk menghapus otorisasi dari tampilan, gunakan perintah bq rm. Masukkan table_id untuk tampilan yang otorisasinya ingin Anda hapus.
bq rm \ project_id:dataset:table_id
API
Panggil metode tables.delete
dan gunakan properti projectID,datasetID, dan tableID untuk
menghapus tampilan yang diotorisasi untuk set data Anda. Untuk mengetahui informasi selengkapnya, lihat
Tabel.
Kuota dan batas
- Tampilan yang diotorisasi tunduk pada batas set data. Untuk mengetahui informasi selengkapnya, lihat Batas set data.
- Jika Anda menghapus tampilan yang diotorisasi, perlu waktu hingga 24 jam untuk menghapus semua referensi ke tampilan tersebut dari sistem. Untuk menghindari error, tunggu 24 jam sebelum menggunakan kembali nama tampilan yang dihapus, atau buat nama unik untuk tampilan Anda.
Topik lanjutan
Bagian berikut menjelaskan metode lanjutan untuk menggunakan tampilan yang diotorisasi.
Menggabungkan keamanan tingkat baris dengan tampilan yang diotorisasi
Data yang ditampilkan dalam tampilan logis atau tampilan terwujud difilter sesuai dengan kebijakan akses tingkat baris tabel sumber yang mendasarinya.
Untuk mengetahui detail tentang cara keamanan tingkat baris berinteraksi dengan tampilan terwujud, lihat Menggunakan keamanan tingkat baris dengan fitur BigQuery lainnya.
Menggabungkan keamanan tingkat kolom dengan tampilan yang diotorisasi
Dampak keamanan tingkat kolom pada tampilan tidak bergantung pada apakah tampilan merupakan tampilan yang diotorisasi atau bukan.
Untuk mengetahui deskripsi mendetail tentang cara izin diterapkan, lihat Membuat kueri tampilan untuk keamanan tingkat kolom.
Menggunakan berbagi BigQuery dengan tampilan yang diotorisasi
Berbagi BigQuery (sebelumnya Analytics Hub) adalah platform pertukaran data dengan kemampuan berikut:
- Memungkinkan Anda berbagi data dan insight dalam skala besar di seluruh batas organisasi.
- Menggunakan framework keamanan dan privasi yang kuat.
- Mendukung publikasi set data BigQuery, yang disebut set data bersama, serta tampilan yang diotorisasi dan set data yang diotorisasi terkait, ke sekumpulan pelanggan.
Set data tertaut adalah set data BigQuery hanya baca yang berfungsi sebagai pointer atau referensi ke set data bersama. Berlangganan ke listing Berbagi akan membuat set data tertaut di project Anda, tetapi bukan salinan set data, sehingga pelanggan dapat membaca data, tetapi tidak dapat menambahkan atau memperbarui objek di dalamnya.
Tabel virtual terwujud yang merujuk ke tabel dalam set data tertaut tidak didukung.
Untuk mengetahui informasi selengkapnya, lihat Pengantar Berbagi.
Langkah berikutnya
- Untuk tutorial tentang cara membuat tampilan yang diotorisasi, lihat Membuat tampilan yang diotorisasi.
- Untuk membuat tampilan logis, lihat Membuat tampilan logis.
- Untuk membuat tampilan terwujud, yang mendukung jenis kontrol akses lainnya, lihat Membuat tampilan terwujud.
- Untuk mendapatkan metadata tampilan, lihat Mendapatkan informasi tentang tampilan.
- Untuk mengelola tampilan, lihat Mengelola tampilan.