使用状況
access_filter: [
field: fully_scope_field
user_attribute: user_attribute_name
}
}
階層
access_filter |
デフォルト値
なし許可
LookML のフィールド名と関連するユーザー属性特別なルール
同じ Explore に複数の access_filter パラメータを適用できます。 |
定義
access_filter
を使用すると、ユーザー固有のデータ制限を適用できます。他の多くの LookML パラメータとは異なり、Looker を適切に機能させるには、Looker の他の設定と組み合わせて使用する必要があります。access_filter
パラメータは単一の Explore に固有のものであるため、制限が必要な各 Explore に access_filter
パラメータを適用する必要があります。
必要なすべての Explore に必ず
access_filter
を追加してください。必要な Explore にaccess_filter
を追加し忘れた場合、データは制限されず、ユーザーはその Explore のすべてのデータを見ることができます。
access_filter
の動作は、ユーザーと同じ操作を行っていて、クエリを実行する前に Explore UI で 1 つ以上のフィルタを適用する必要があるのと同様です。たとえば、一部の顧客だけが利用できる場合は、その顧客に対し顧客名フィルタを適用する必要があります。
アクセス フィルタを導入する手順は次のとおりです。
- 制限が必要なフィールドを指定します。上記の例では、「名前」というディメンションに「顧客」というデータ探索があるとします。フィールドが
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
を使用します。