access_filter

使用状況

Explore: explore_name {
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 つ以上のフィルタを適用する必要があるのと同様です。たとえば、一部の顧客だけが利用できる場合は、その顧客に対し顧客名フィルタを適用する必要があります。

アクセス フィルタを導入する手順は次のとおりです。

  1. 制限が必要なフィールドを指定します。上記の例では、「名前」というディメンションに「顧客」というデータ探索があるとします。フィールドが customer.name として参照されます。
  2. 対象の Explore を操作するすべてのユーザーは、アクセス フィルタの値を必要とします。この例では、すべてのユーザーに、表示を許可するお客様名のリストが必要です。これらの値をユーザーまたはユーザー グループに適用するには、Looker のユーザー属性機能を使用します。詳しくは、ユーザー属性に関するドキュメントをご覧ください。allowed_customers ユーザー属性を作成したとします。
  3. 最後に、作成したユーザー属性の値を、フィルタとして使用するフィールドに関連付けます。この例では、次のように 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 を使用します。