access_grant

Penggunaan

access_grant: access_grant_name {
  user_attribute: user_attribute_name
  allowed_values: [ "value_1", "value_2" , ... ]
}
Hierarki
access_grant
Nilai Default
Tidak ada

Menerima
Nama atribut pengguna dengan subparameter user_attribute dan daftar nilai atribut pengguna dengan subparameter allowed_values

Definisi

Pemberian akses adalah struktur LookML yang ditentukan dalam file model yang mengontrol akses ke struktur LookML lainnya, khususnya Eksplorasi, gabungan, tampilan, dan kolom. Parameter access_grant menentukan pemberian akses.

access_grant menggunakan nama atribut pengguna dengan subparameter user_attribute dan daftar nilai yang dapat diterima untuk atribut pengguna dengan subparameter allowed_values. Hanya pengguna yang diberi salah satu nilai yang diizinkan dalam atribut pengguna yang ditentukan yang dapat mengakses struktur yang memerlukan pemberian akses.

Setelah ditentukan, Anda dapat menggunakan parameter required_access_grants di tingkat Eksplorasi, gabungan, tampilan, atau kolom untuk mewajibkan pemberian akses guna mengakses struktur tersebut.

Misalnya, LookML berikut membuat hibah akses bernama can_view_financial_data, yang didasarkan pada atribut pengguna department. Hanya pengguna yang diberi nilai "finance" atau "executive" dalam atribut pengguna department yang diberi akses ke pemberian akses can_view_financial_data:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

Kemudian, Anda mengaitkan pemberian akses can_view_financial_data dengan struktur LookML menggunakan parameter required_access_grants:

dimension: financial_data_field
  ...
  required_access_grants: [can_view_financial_data]
}

Dalam contoh ini, hanya pengguna yang memiliki nilai atribut pengguna yang tepat untuk pemberian akses can_view_financial_data yang akan melihat dimensi financial_data_field.

Anda dapat menentukan beberapa pemberian akses dalam model, dan Anda dapat menetapkan beberapa pemberian akses ke struktur LookML dengan parameter required_access_grants. Dalam hal ini, pengguna harus memiliki akses ke semua hibah akses yang ditentukan untuk memiliki akses ke struktur LookML.

Misalnya, LookML berikut menentukan dua pemberian akses yang berbeda:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

access_grant: can_view_payroll_data {
  user_attribute: view_payroll
  allowed_values: [ "yes" ]
}

Kemudian, dalam file tampilan, parameter required_access_grants menentukan kedua pemberian akses:

view: payroll {
  ...
  required_access_grants: [can_view_financial_data, can_view_payroll_data]
}

Dalam hal ini, hanya pengguna yang memiliki nilai "finance" atau nilai "executive" yang ditetapkan ke atribut pengguna department dan memiliki nilai "yes" yang ditetapkan ke atribut pengguna view_payroll yang dapat mengakses tampilan.

Contoh

Tentukan pemberian akses yang mewajibkan pengguna memiliki nilai "product_management" atau nilai "engineering" dalam atribut pengguna department agar memiliki akses ke pemberian akses engineering:

access_grant: engineering {
  user_attribute: department
  allowed_values: [ "product_management", "engineering" ]
}

Anda juga dapat menentukan pemberian akses dengan atribut pengguna yang mengambil data numerik atau tanggal/waktu. Untuk melakukannya, Anda harus menyertakan nilai yang diizinkan dalam tanda kutip ganda, seperti yang Anda lakukan dengan string. Misalnya, pemberian akses berikut mereferensikan atribut pengguna id, yang memiliki jenis data angka. Hanya pengguna dengan nilai id 1, 2, 3, 4, atau 5 yang akan diberi akses:

access_grant: user_id {
  user_attribute: id
  allowed_values: ["1", "2", "3", "4", "5"]
}

Contoh berikut mereferensikan atribut pengguna start_date, yang memiliki jenis data Date/Time. Hanya pengguna yang memiliki nilai 2020-01-01 di atribut pengguna yang akan diberi akses:

access_grant: start_date {
  user_attribute: start_date
  allowed_values: ["2020-01-01"]
}

Hal-hal yang perlu dipertimbangkan

Atribut pengguna yang dapat diedit pengguna tidak diizinkan dengan pemberian akses

Pemberian akses tidak dapat menerima atribut pengguna yang memiliki tingkat Akses Pengguna Edit. Pengguna dapat melihat dan mengedit nilai atribut pengguna yang memiliki tingkat Akses Pengguna Edit di halaman akun mereka. Untuk tujuan keamanan, hanya atribut pengguna yang memiliki tingkat Akses Pengguna Tidak Ada atau Lihat yang diizinkan dengan access_grant.

Nilai yang tercantum dalam allowed_values harus sama persis dengan nilai atribut pengguna

access_grant akan berfungsi dengan atribut pengguna yang memiliki jenis data Filter String (lanjutan), Filter Angka (lanjutan), atau Filter Tanggal/Waktu (lanjutan). Namun, untuk memberikan akses, nilai yang tercantum dalam parameter allowed_values harus sama persis dengan nilai dalam atribut pengguna.

Misalnya, jika Anda membuat atribut pengguna bernama numeric_range dengan jenis data Filter Angka (lanjutan), Anda dapat menggunakan ekspresi filter Looker untuk memasukkan rentang angka, seperti [1, 20]. Dalam contoh tersebut, ekspresi filter Looker di atribut pengguna akan menampilkan rentang angka antara 1 dan 20, inklusif. Namun, karena access_grant memerlukan kecocokan yang sama persis, penggunaan parameter allowed_values: ["10"] tidak akan memberikan akses. Untuk memberikan akses, Anda harus menggunakan allowed_values: ["[1, 20]"].

Hal ini juga berlaku untuk atribut pengguna yang memiliki beberapa nilai. Misalnya, atribut pengguna dengan jenis data Filter Angka (lanjutan) yang diberi nilai 1, 3, 5 hanya akan cocok dengan pemberian akses dengan parameter allowed_values: ["1, 3, 5"]. Demikian pula, pemberian akses dengan parameter allowed_values: ["1"] tidak akan memberikan akses kepada pengguna dengan beberapa nilai dalam atribut pengguna. Pemberian akses dengan parameter allowed_values: ["1", "3", "5"] juga tidak akan memberikan akses kepada pengguna ini, karena meskipun parameter allowed_values: [] dapat menerima beberapa nilai, tidak ada satu pun dari tiga nilai dalam parameter allowed_values: ["1", "3", "5"] yang cocok dengan nilai atribut pengguna 1, 3, 5 secara persis. Dalam hal ini, pengguna dengan nilai atribut pengguna 1 atau 3 atau 5 akan diberi akses, karena setiap nilai tersebut cocok dengan salah satu opsi dalam parameter allowed_values: ["1", "3", "5"].

Demikian pula, access_grant memerlukan kecocokan persis dengan atribut pengguna dari jenis data Filter String (lanjutan). Tidak seperti ekspresi filter Looker biasa, penggunaan parameter allowed_values: [ "Ca%" ] tidak cocok dengan atribut pengguna dengan nilai Canada atau California. Hanya nilai atribut pengguna yang persis Ca% yang akan dicocokkan dan diberi akses.

Pengguna yang tidak diberi akses akan mengalami perilaku yang berbeda bergantung pada struktur LookML

Pengguna yang tidak memiliki akses ke hibah akses akan mengalami perilaku yang berbeda, bergantung pada struktur LookML yang coba mereka akses. Lihat halaman dokumentasi required_access_grants di tingkat Jelajahi, gabung, lihat, atau kolom untuk mengetahui informasi tentang cara akses ke struktur tersebut dibatasi.

Pemberian akses di beberapa tingkat ditambahkan bersama-sama

Jika Anda menyusun pemberian akses, pemberian akses bersifat menambah. Misalnya, Anda dapat membuat required_access_grants untuk tampilan dan membuat required_access_grants untuk kolom di dalam tampilan. Untuk melihat kolom, pengguna harus memiliki pemberian akses ke kolom dan tampilan. Demikian pula untuk gabungan: Jika Anda membuat required_access_grants untuk tampilan dalam gabungan dan juga membuat required_access_grants untuk gabungan dari kedua tampilan ini, pengguna harus memiliki pemberian akses ke kedua tampilan dan gabungan agar dapat melihat tampilan gabungan.

Mengakses struktur yang mereferensikan struktur yang dibatasi

Pengguna dapat memiliki akses ke Tampilan atau dasbor yang berisi objek LookML yang tidak dapat mereka akses. Dalam situasi ini, Look atau dasbor akan ditampilkan seolah-olah objek LookML tersebut telah dihapus dari model.

Misalkan kita memiliki Eksplorasi A, yang berisi gabungan A, tampilan A, dan kolom A. Selanjutnya, kita menerapkan pembatasan akses pada Explore A. Seperti yang diharapkan, gabungan A, tampilan A, dan kolom A akan mewarisi batasan tersebut, tetapi hanya saat pengguna berinteraksi dengan Eksplorasi A. Jika gabungan A, tampilan A, atau kolom A digunakan di Explore B yang berbeda, gabungan, tampilan, atau kolom tersebut tidak akan memiliki batasan akses. Oleh karena itu, jika Anda berencana menggunakan kembali elemen LookML, sebaiknya terapkan batasan akses pada tingkat serendah mungkin.