コメントを無効にする:
用途
explore: explore_name {
access_filter: {
field: fully_scoped_field
user_attribute: user_attribute_name
}
}
|
階層
access_filter |
デフォルト値
なし
許可
LookML フィールド名と関連付けられたユーザー属性
特別なルール
同じ Explore で複数の access_filter パラメータを適用できます。 |
定義
access_filter を使用すると、ユーザー固有のデータ制限を適用できます。ほとんどの LookML パラメータとは異なり、このパラメータを適切に機能させるには、Looker の他の設定と組み合わせて使用する必要があります。access_filter パラメータは単一の Explore に固有であるため、制限が必要な各 Explore に access_filter パラメータを適用する必要があります。
access_filterが必要なすべての Explore にaccess_filterを追加することを忘れないでください。access_filterを追加すべき Explore に追加し忘れると、データは制限されず、ユーザーはその Explore のすべてのデータを表示できるようになります。
access_filter の動作は、ユーザーと一緒に座って、クエリを実行する前に Explore UI で 1 つ以上のフィルタを適用するよう要求する場合と似ています。たとえば、ユーザーが一部の顧客のみを扱う場合、そのユーザーに顧客名フィルタの適用を要求します。
アクセス フィルタを実装するには、次の手順を実施する必要があります。
- 制限が必要なフィールドを決定します。ユーザーに顧客名のフィルタの適用を求める例では、ユーザーは [名前] というディメンションを含む [顧客] Explore を持っている可能性があります。このフィールドの参照方法は
customer.nameです。 - 問題の Explore を操作するすべてのユーザーに、アクセス フィルタの値が必要です。この例では、すべてのユーザーが、表示を許可されている顧客名のリストを必要とします。これらの値を各ユーザーまたはユーザー グループに適用するには、Looker のユーザー属性機能を使用します。この機能については、ユーザー属性のドキュメント ページをご覧ください。allowed_customers ユーザー属性を作成するとします。
- 最後に、作成したユーザー属性を、その値をフィルタとして使用するフィールドに接続します。この例では、allowed_customers ユーザー属性を
customer.nameフィールドに次のように関連付けます。
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
例
ユーザーが自分の販売地域の情報のみを表示できるようにする:
explore: customer {
access_filter: {
field: sales.region
user_attribute: sales_region
}
}
顧客内の特定の部門に関する情報のみをユーザーに表示するように制限します。
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
access_filter: {
field: product.department
user_attribute: allowed_departments
}
}
一般的な課題
access_filter には完全スコープのフィールド名が必要
ビュー名なしでフィールド名を記述すると、Looker のほとんどのパラメータは、パラメータが使用されている場所に基づいてビュー名を使用します。ただし、access_filter はこのようには機能しません。ビュー名とフィールド名の両方を記述する必要があります。
たとえば、次のように記述すると、name が顧客名として解釈されると考えるかもしれません。
explore: customer {
access_filter: {
field: name
user_attribute: allowed_customers
}
}
しかし、実際にはエラーが発生します。代わりに、次のように記述する必要があります。
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
管理者でも UI でフィルタ値を設定する必要があります
access_filter を使用する Explore にアクセスするすべてのユーザーは、参照されるユーザー属性に値を持っている必要があります。管理者のロールを持つユーザーはすべてのデータを表示できますが、この制限は管理者にも適用されます。ユーザー属性値が設定されていないユーザーが Explore を表示しようとすると、エラーが表示されます。
管理者または別のユーザーに文字列フィールドのすべての値へのアクセスを許可するには、ユーザー属性のデータ型を [文字列フィルタ(詳細設定)] に設定し、値
%, NULLを使用します。管理者または別のユーザーに数値フィールドのすべての値へのアクセスを許可するには、ユーザー属性のデータ型を [数値フィルタ(詳細設定)] に設定し、値
<0, >=0, NULLを使用します。
知っておくべきこと
Explore に access_filter が含まれている場合、full_suggestions のデフォルト値が yes に切り替わる
Explore に access_filter パラメータが含まれている場合、full_suggestions のデフォルト値は yes に切り替わります。これにより、候補クエリが Explore ロジックを使用して実行されます。つまり、access_filter が適用されて返される候補が絞り込まれ、候補リストがユーザーがアクセスできるデータのみに制限されます。
full_suggestions を no に手動で設定すると、フィルタ候補クエリは実行されません。