Praktik terbaik ini mencerminkan rekomendasi yang dibagikan oleh tim lintas fungsional yang terdiri dari Looker berpengalaman. Insight ini berasal dari pengalaman bertahun-tahun bekerja dengan pelanggan Looker, mulai dari penerapan hingga kesuksesan jangka panjang. Praktik ini ditulis agar dapat digunakan oleh sebagian besar pengguna dan situasi, tetapi seperti biasa, gunakan penilaian terbaik saat menerapkannya.
Halaman ini memberikan contoh terpandu tentang cara menyiapkan kontrol akses konten kepada administrator instance Looker. Kita akan membahas proses penerapan, dimulai dengan project baru dan dilanjutkan ke model, kumpulan model, kumpulan izin, grup, peran, dan atribut pengguna.
Pertama, analogi untuk memahami fitur utama Looker dalam konteks ini:
Project ibarat rumah.Model adalah ruangan di rumah yang diisi dengan konten tertentu.
Set model adalah sekelompok ruangan atau satu ruangan (kamar tidur, dapur).
Kumpulan izin adalah checklist aktivitas, yang menentukan hal-hal yang dapat dilakukan orang di ruangan (makan, bermain, tidur).
Grup adalah cara untuk menggabungkan orang-orang dengan karakteristik yang sama (dewasa, anak-anak, tamu).
Peran adalah cara memberi checklist aktivitas kepada sekelompok orang di berbagai kumpulan ruang.
Atribut pengguna adalah kunci yang membuka item khusus di rumah (teko, alat listrik).
Skenario
Berikut adalah contoh startup dengan tim keuangan, penjualan, dan produk. CEO adalah satu-satunya admin kami, dan ia ingin setiap tim hanya melihat konten yang relevan bagi mereka, dengan pengecualian bahwa setiap VP tim harus memiliki akses ke semua konten tim. Dia menginginkan akses fitur yang berbeda untuk karyawan standar, manajer, dan VP.
- Karyawan standar harus dapat melihat dan menjelajahi data dalam model mereka sendiri.
- Pengelola harus memiliki akses standar dan juga dapat mendownload serta menjadwalkan konten.
- Wakil Presiden harus memiliki hampir semua hak istimewa, kecuali beberapa hak istimewa yang hanya diperuntukkan bagi CEO.
CEO ingin tenaga penjualan dapat melihat data untuk aktivitas mereka sendiri, tetapi tidak dapat melihat angka penjualan masing-masing tenaga penjualan lain. Namun, manajer penjualan harus dapat melihat angka setiap tenaga penjual. Terakhir, ada beberapa kolom keuangan dengan informasi sensitif yang ingin disamarkan untuk karyawan standar yang menggunakan model tersebut.
Berikut adalah diagram organisasi:
Diagram ini menunjukkan struktur organisasi berikut untuk startup contoh kami:
- CEO
- VP Keuangan
- Pengelola Keuangan
- Akuntan
- VP Penjualan
- Sales Manager West
- Salesperson West
- Sales Manager East
- Salesperson East
- VP Produk
- Product Manager
- Engineer
Menerapkan kontrol akses yang diinginkan akan melibatkan langkah-langkah berikut:
- Membuat project: Project adalah link struktural antara koneksi database dan model data.
- Menambahkan model: Tentukan data apa yang akan ditampilkan kepada pengguna mana.
- Membuat set model: Mengelompokkan model yang relevan.
- Membuat kumpulan izin: Menentukan secara eksplisit tindakan yang dapat dilakukan pengguna dalam kumpulan model.
- Membuat grup: Mengelompokkan pengguna yang serupa.
- Membuat peran: Membuat koneksi antara kumpulan model, kumpulan izin, dan grup.
- Edit akses konten: Mengelola dasbor dan Tampilan yang dapat dilihat pengguna melalui folder.
- Tambahkan filter data: Memfilter lebih lanjut data yang dapat diakses pengguna tertentu dalam model.
1. Membuat project
Hal pertama yang kita perlukan adalah project, yang merupakan penampung untuk satu atau beberapa model. Jika sudah menyiapkan project, Anda dapat melewati langkah ini. Atau, Anda dapat membuka halaman LookML Projects dengan memilih Projects di bagian Develop di Looker dan memilih New LookML Project untuk membuat project baru. Untuk petunjuk yang lebih mendetail tentang cara membuat project baru, lihat halaman dokumentasi Membuat model.
Di halaman Project Baru, kita akan membuat project dengan setelan berikut:
- Di bagian Name, kita memberi nama project.
- Di bagian Starting Point, kita memilih Generate Model from Database Schema.
- Di menu drop-down Connection, kita memilih nama koneksi database.
- Di bagian Build Views From, untuk contoh ini, kita memilih opsi All Tables sehingga generator LookML membuat file tampilan untuk setiap tabel dalam database Anda.
Setelah setelan yang diinginkan untuk project baru dikonfigurasi, kita memilih Create Project.
Setelah membuat project, Anda akan diarahkan ke model LookML yang dibuat otomatis untuk project tersebut. Pada tahap ini, Anda harus menggunakan tombol Configure Git untuk menyiapkan kontrol versi project. Petunjuk mendetail tentang cara menyiapkan kontrol versi ada di halaman dokumentasi Menyiapkan dan menguji koneksi Git.
2. Menambahkan model
Model data seperti portal yang dapat disesuaikan ke dalam database. Setiap model dapat mengekspos data yang berbeda kepada pengguna. Dalam contoh ini, tenaga penjualan kami memerlukan data yang berbeda dengan engineer kami, jadi kami akan menambahkan model terpisah untuk mengekspos informasi yang sesuai dari database ke setiap jenis pengguna.
Dalam project LookML, kita akan menambahkan file model LookML baru dengan nama setiap model yang diinginkan (finance
, sales
, dan product
). Pastikan untuk menentukan minimal satu Jelajahi di setiap file model; hal ini akan memungkinkan kita memilih model saat membuat set model (jika tidak, model tidak akan muncul dalam pilihan). Untuk referensi tambahan tentang cara menggunakan parameter explore
dalam file model, lihat halaman dokumentasi Memahami file model dan tampilan.
Setelah berhasil menambahkan model, kita masih perlu mengonfigurasinya. Untuk mengonfigurasi model, kita akan kembali ke halaman Project di bagian Develop, yang sekarang akan menampilkan teks merah yang bertuliskan "Configuration required for use" yang sejajar dengan setiap nama model.
Di samping setiap model, pilih Configure. Kita akan memastikan nama project sudah benar, beserta koneksi yang akan diizinkan untuk digunakan model ini, lalu menyimpannya.

Setelah semua model dikonfigurasi dengan benar, pesan masalah konfigurasi berwarna merah yang kita temui sebelumnya tidak akan muncul lagi.
Perlu diingat bahwa di Looker, memberikan izin see_lookml
atau develop
kepada pengguna pada satu model akan memberinya izin tersebut untuk semua model dalam project tersebut. Oleh karena itu, Anda harus membuat project terpisah jika ingin mempartisi izin untuk melihat atau mengembangkan LookML. Jika tidak, Anda cukup membuat model baru. Izin model sudah cukup untuk memastikan bahwa hanya orang tertentu yang dapat membuat kueri data tertentu.
Untuk mengetahui informasi selengkapnya tentang izin, lihat dokumentasi kami tentang peran.
3. Membuat set model
Setelah model data untuk setiap departemen dikonfigurasi, kita akan menambahkan model yang sesuai untuk setiap departemen ke set model yang kita buat. Untuk membuat set model baru, kita akan membuka halaman Peran di panel Admin dan memilih Set Model Baru. Untuk petunjuk lebih lanjut tentang cara membuat set model baru, lihat halaman dokumentasi Peran.
Setelah dibuat, set model baru akan ditampilkan di bagian Set Model di halaman Peran, seperti pada contoh screenshot berikut:
4. Membuat set izin
Selanjutnya, kita akan membuat set izin menggunakan set model yang baru saja kita buat. Seperti yang disebutkan saat menyiapkan skenario, kita menginginkan empat tingkat izin yang sesuai dengan empat tingkat hierarki dalam bagan organisasi, dan tingkat yang lebih tinggi harus menyertakan izin untuk tingkat di bawahnya. Dalam skenario ini, kita akan mengidentifikasi kumpulan izin sebagai berikut:
- CEO memiliki izin Admin yang ditetapkan.
- VP memiliki setelan izin Admin Terbatas.
- Pengelola memiliki setelan izin Download dan Bagikan.
- Karyawan standar memiliki setelan izin Lihat dan Jelajahi.
Untuk membuat kumpulan izin baru, kita akan membuka halaman Roles di panel Admin dan memilih New Permission Set. Untuk setiap tingkat izin, kita akan memilih izin yang sesuai. Secara umum, kumpulan izin harus tumpang-tindih sesedikit mungkin, dengan setiap kumpulan hanya menambahkan izin tertentu yang kita inginkan untuk dimiliki pengguna dengan kumpulan izin ini. Hal ini karena kita akan memberikan beberapa kumpulan izin kepada beberapa pengguna, dan kita ingin mengetahui persis apa yang diizinkan oleh setiap kumpulan izin. Namun, karena struktur hierarki, beberapa tumpang-tindih sering kali diperlukan.
Dalam contoh ini, kita ingin izin Lihat dan Jelajahi ditetapkan agar pengguna dapat melihat konten, mengajukan pertanyaan, dan menyimpan kartu yang berguna. Jadi, kami akan memberi mereka izin yang terkait dengan melihat konten (seperti see_looks
dan see_user_dashboards
), izin explore
, dan izin save_content
. Pengecualian yang penting di sini adalah see_lookml
yang mungkin hanya kita inginkan untuk developer, dan see_sql
, yang kita sediakan untuk mereka yang memahami SQL dan dipercaya untuk melihat struktur database. Semua izin ini sepenuhnya berada di cabang access_data
. Kami tidak memberikan izin see
apa pun di bagian bawah hierarki, karena izin tersebut adalah izin administratif.
Untuk kumpulan izin Download dan Bagikan, kami akan menambahkan izin yang terkait dengan mendownload, menjadwalkan, membagikan, membuat Tampilan publik (yang memungkinkan pembagian Tampilan kepada pengguna non-Looker), dan see_schedules
(karena mereka dapat membuat jadwal, wajar jika mereka juga dapat melihatnya di panel Admin).
Satu-satunya kolom yang telah dipilih saat mengonfigurasi kumpulan izin Lihat dan Jelajahi serta Download dan Bagikan adalah izin induk yang diperlukan untuk memilih izin turunan yang ditambahkan di cabang access_data
. Oleh karena itu, karena pengguna dengan kumpulan izin Download dan Bagikan juga akan memiliki kumpulan izin Lihat dan Jelajahi, Anda tidak perlu menyertakan izin seperti see_lookml_dashboards
, see_user_dashboards
, dan explore
dalam kumpulan izin Download dan Bagikan, karena izin ini tidak berisi izin turunan yang diperlukan untuk kumpulan izin Download dan Bagikan.
Terakhir, untuk kumpulan izin Admin Terbatas, kita akan menambahkan sebagian besar izin administratif di bagian bawah hierarki, tidak termasuk hak istimewa manage_models
dan sudo
yang hanya diinginkan CEO untuk dirinya sendiri. Tampilannya terlihat seperti ini:
Setelah selesai, kumpulan izin akan menyertakan izin berikut:
- Admin: Kumpulan izin Admin, yang dicadangkan untuk CEO perusahaan contoh kami, mencakup semua izin.
- Admin Terbatas: Kumpulan izin Admin Terbatas mencakup izin
create_prefetches
,login_special_email
,manage_homepage
,manage_spaces
,see_alerts
,see_datagroups
,see_logs
,see_pdts
,see_queries
,see_users
, danupdate_datagroups
. - Download dan Bagikan: Kumpulan izin Download dan Bagikan mencakup izin
access_data
,create_public_looks
,download_with_limit
,download_without_limit
,save_content
,schedule_external_look_emails
,schedule_look_emails
,see_looks
,see_schedules
,send_outgoing_webhook
,send_to_s3
, dansend_to_sftp
. - Lihat dan Jelajahi: Kumpulan izin Lihat dan Jelajahi mencakup izin
access_data
,create_table_calculations
,explore
,save_content
,see_drill_overlay
,see_lookml_dashboards
,see_looks
, dansee_user_dashboards
.
Anda dapat melihat izin yang termasuk dalam kumpulan izin yang ada dengan membuka bagian Kumpulan Izin di halaman admin Peran.
5. Buat grup
Langkah berikutnya adalah membuat grup dan mengelompokkan pengguna. Kita akan membuat grup untuk karyawan standar dan manajer di setiap departemen, karena grup ini pada akhirnya akan cocok dengan berbagai peran yang kita buat nanti. VP akan berada dalam grup mereka sendiri dan CEO tidak memerlukan grup. Setelah selesai, halaman Groups akan mencantumkan grup berikut dan ID grup yang sesuai, yang dibuat secara otomatis oleh Looker. Contoh:
ID | Nama |
---|---|
1 | Semua Pengguna |
3 | Keuangan |
4 | Penjualan |
5 | Produk |
7 | Sales Manager |
8 | Product Manager |
9 | Pengelola Keuangan |
10 | VP |
Setelah grup dibuat, kita harus menambahkan pengguna ke grup tersebut. Untuk mengetahui petunjuk tentang cara menambahkan pengguna ke grup, lihat halaman dokumentasi Grup.
Saat menambahkan pengguna ke grup yang telah kita buat, ingatlah bahwa karena cara kita menyusun izin, grup tingkat yang lebih tinggi dapat disertakan dalam grup tingkat yang lebih rendah. Misalnya, kita ingin VP berada di grup Keuangan, tetapi kita tidak ingin Pengelola Penjualan berada di grup Produk. Cara efisien untuk mengatasi hal ini adalah dengan memulai dengan menambahkan pengguna ke grup tingkat lebih tinggi (seperti VP), sehingga kita dapat menambahkan mereka sebagai grup ke tingkat yang lebih rendah.
6. Membuat peran
Setelah memiliki kumpulan model, kumpulan izin, dan grup, kita dapat menggabungkan semuanya menggunakan peran. Setiap peran akan memiliki satu kumpulan izin dan satu kumpulan model, serta dapat menyertakan satu atau beberapa grup. Karena peran harus menyertakan kumpulan model, kita akan membuat peran lagi untuk karyawan standar dan untuk manajer di setiap departemen.
- Peran standar: Peran standar akan menyertakan kumpulan izin Lihat dan Jelajahi, beserta kumpulan model yang sesuai. Tetapkan peran standar ke grup standar dan pengelola untuk departemen tersebut, serta ke VP. Misalnya, tetapkan peran Standard Finance ke grup Finance dan Finance Manager, serta kepada VP of Finance.
- Peran pengelola:Peran pengelola akan memiliki kumpulan izin Download dan Bagikan, beserta kumpulan model yang sesuai. Peran ini harus ditetapkan ke grup pengelola untuk departemen yang sesuai, dan ke VP departemen.
- Peran pengelola:Peran pengelola akan memiliki kumpulan izin Download dan Bagikan, beserta kumpulan model yang sesuai. Peran ini harus ditetapkan ke grup pengelola untuk departemen yang sesuai, dan ke VP departemen.
- Peran VP: Peran VP akan memiliki kumpulan izin Admin Terbatas dan kumpulan model Semua. Peran ini akan ditetapkan ke grup VP.
7. Mengedit akses konten
Langkah berikutnya adalah mengatur izin akses folder sehingga setiap grup memiliki akses ke konten mereka sendiri (dan hanya konten mereka sendiri). Berikut adalah tata letak folder dalam contoh instance kami, yang dapat dilihat dengan membuka halaman Akses Konten di panel Admin:
Akses ke folder mengikuti aturan pewarisan hierarkis. Untuk mengetahui informasi selengkapnya tentang cara kerjanya, lihat dokumentasi kami tentang tingkat akses dan kontrol akses dan pengelolaan izin.
Dengan mengikuti aturan untuk akses folder, kita ingin memberikan akses Lihat kepada semua pengguna di folder Bersama. Kita akan memberi setiap grup akses Lihat ke folder induk dalam hierarki di atas folder yang akan diakses grup. Dengan cara ini, saat kita menelusuri hierarki, jika tidak ingin grup melihat folder, kita tidak akan menyertakan grup tersebut saat memberikan akses.
Kita dapat memberikan tingkat akses Kelola Akses, Edit kepada grup di folder tempat kita ingin mengontrol siapa yang melihat folder tersebut. Dalam contoh ini, kita hanya ingin CEO dan VP memiliki izin tersebut; semua orang lainnya hanya akan memiliki akses Lihat ke folder yang mereka butuhkan.
8. Menambahkan batasan akses data dengan atribut pengguna
Bagian ini menunjukkan metode untuk mencegah pengguna tertentu mengakses baris atau kolom data tertentu dari model yang dapat mereka akses. Ingat, CEO kami ingin tenaga penjualan dapat melihat data untuk aktivitas mereka sendiri, tetapi tidak untuk aktivitas orang lain. Namun, manajer penjualan harus dapat melihat angka setiap tenaga penjual. Untuk melakukannya, kita akan memanfaatkan atribut pengguna dan parameter sql_always_where
.
Membuat atribut pengguna
Pertama, kita akan membuat atribut pengguna baru bernama access_level
yang disembunyikan dari pengguna. Hal ini akan memungkinkan kita menentukan tingkat akses untuk berbagai grup yang kita miliki. Kita akan menetapkan nilai berikut saat membuat atribut pengguna:
- Nama:
access_level
- Label: Tingkat Akses
- Jenis Data: String
- Akses Pengguna: Edit
- Sembunyikan Nilai: Tidak
Dalam contoh ini, kita akan membiarkan kotak Tetapkan nilai default tidak dicentang.
Saat membuat kolom, kita akan mengonfigurasi tiga tingkat akses: Dasar, Premium, dan Penuh. Kita akan menetapkan tingkat tersebut ke grup standar, pengelola, dan VP. Tindakan ini dilakukan di tab Nilai Grup di bagian yang sama. Lihat bagian Menetapkan nilai ke grup pengguna dalam dokumentasi Atribut pengguna untuk mengetahui detail selengkapnya.
Karena urutan aturan ini penting, kita ingin menempatkan nilai akses tertinggi di bagian atas daftar, untuk mengganti nilai akses yang lebih rendah di bagian bawah. Perilaku ini dijelaskan lebih lanjut di halaman dokumentasi Atribut pengguna.
Memfilter data baris dengan atribut pengguna
Kita akan membayangkan bahwa sudah ada Jelajahi yang dibuat dengan semua informasi penjualan di dalamnya. Kami akan memeriksa tingkat akses pengguna yang membuat kueri Eksplorasi; jika tingkat aksesnya adalah Dasar (yang telah kami berikan kepada semua tenaga penjualan standar), kami akan selalu memfilter Eksplorasi berdasarkan nama pengguna, sehingga hanya baris milik setiap tenaga penjualan yang dapat diakses oleh mereka. Jika tingkat aksesnya adalah Premium atau Penuh, kueri tidak akan difilter. Secara default, kami memiliki atribut pengguna yang disebut Nama yang merupakan nama pengguna Looker. LookML untuk Penelusuran akan terlihat seperti ini:
explore: sales_info { sql_always_where: {% if {{_user_attributes['access_level']}} == "Basic" %} ${sales_info.name} = "{{_user_attributes['name']}}" % endif % ;; }
Memfilter data kolom dengan atribut pengguna
Terakhir, ada beberapa kolom PII (informasi identitas pribadi) dalam model keuangan yang juga ingin kita sembunyikan dari beberapa pengguna. Untuk melakukannya, kita dapat menggunakan atribut pengguna yang telah dibuat, beserta petunjuk untuk menerapkan izin tingkat database di Looker di halaman dokumentasi Atribut pengguna, untuk memberi pengguna dengan tingkat akses Penuh kemampuan untuk melihat kolom PII.
Selesai. Kami telah selesai menyiapkan kontrol akses konten dan data, dan semua pengguna kami bebas menjelajahi Looker. Dengan melakukan ini, kami dapat yakin bahwa mereka hanya akan melihat konten yang kami izinkan untuk mereka lihat.