ユーザーガイド 基本情報 ヘルプセンター ドキュメンテーション コミュニティ トレーニング
Looker
  
English
Français
Deutsch
日本語
ユーザー属性

ユーザー属性は、Lookerユーザーごとのカスタマイズされたエクスペリエンスを提供するものです。Looker管理者がユーザー属性を定義し、ユーザー属性値をユーザーグループまたは個々のユーザーに適用します。

管理者は、パスワードや連絡先情報など、ユーザー自身が値を入力するユーザー属性を定義することもできます。Lookerのさまざまな場所で、ユーザー属性を参照することで、ユーザーごとのカスタムエクスペリエンスを提供できます。

Lookerでは、emailfirst_namelanding_pagelast_namefull_nameIDtimezone(設定されている場合)、localenumber_formatなど、いくつかのユーザー属性が自動的に含まれます。

ユーザー属性の表示

ユーザー属性のリストを表示するには、[管理]メニューの[ユーザー]セクションの[ユーザーの属性]ページに移動します。

ユーザー属性の表には、それぞれのユーザー属性の名前、ラベル、タイプが表示されます(詳細については、下記を参照してください)。また、ユーザー属性に対して実行できるアクションのボタンもあります。一部の属性には、アクションのボタンの代わりに「System Default」と表示されています。この場合、これらの属性はユーザーごとに自動的に作成されます。システムデフォルトのユーザー属性は、内部使用のためにLookerによって予約されており、編集することはできません。

ユーザー属性の作成

ユーザー属性を定義するには、画面の左上にある[Create User Attribute]ボタンをクリックします。それぞれのユーザー属性に次の設定があります。

ユーザー属性を定義したら、ページの上部にある[User Values]タブと[Group Values]タブをクリックして、個々のユーザーまたはユーザーグループに値を割り当てることができます。

個々のユーザーへの値の割り当て

ユーザー属性を定義したら、その値を個々のユーザーに割り当てることができます。

  1. [User Values]をクリックします。
  2. 値を割り当てるユーザーをドロップダウンメニューで選択します。そのユーザーに適用される値のテーブルが表示されます。
  3. [Set Value for User]ボタンをクリックします。
  4. [New Value]フィールドに、そのユーザーに割り当てる値を入力します。
  5. [保存]をクリックします。

値が個々のユーザーに割り当てられると、その値は必ず、そのユーザーのグループに割り当てられている値よりも優先されます。[User Values]タブには、グループ値をオーバーライドするカスタム値がユーザー属性に割り当てられていることが示されます。

使用可能なすべての値をLooker管理者またはその他のユーザーに割り当てる場合は、ユーザー属性でワイルドカード値を使用します。

ユーザーグループへの値の割り当て

ユーザー属性の値をユーザーグループに割り当てることができます。[管理]パネルの[ユーザーの属性]ページから、設定する属性の右にある[編集]を選択します。続いて、次の手順を実行します。

  1. [Group Values]をクリックします。
  2. [+ Add Group]ボタンをクリックします。
  3. 値を割り当てるグループをドロップダウンメニューで選択します。
  4. [値]フィールドに、そのグループに割り当てる値を入力します。
  5. [保存]をクリックします。

値を複数のグループに割り当てるときには、ユーザーが複数のグループに属する場合に備えて、どのグループを優先するかを決定する必要があります。そのためには、グループをドラッグして適用順に並べます。各グループは、その下にリストされているグループよりも優先されます。

例えば、上の例には、Executive TeamグループとManagement Teamグループがあります。役員はマネージャーでもあるため、両方のグループのメンバーです。Executive Teamグループをリストの最上部にドラッグすると、そのメンバーには、Managerという値ではなく、Executiveという値が確実に割り当てられます。

ユーザーがユーザー属性についてカスタム値を設定した場合、ユーザーが設定した値は、そのユーザーが属するグループに割り当てられているどの値よりも優先されます。

ユーザー属性を使用できる場所

ユーザー属性には次の機能があります。

データベース接続

接続のホスト、ポート、データベース、ユーザー名、パスワード、スキーマにはそれぞれ、ユーザー属性の値を割り当てることができます(接続のホストフィールドでは、[User Access]レベルが[Editable]に設定されているユーザー属性は受け入れられません)。

これにより、その接続が、クエリを実行するユーザーに固有のものになります。ユーザー属性を[Additional Params]フィールドで参照することもできます。これにより、JDBC接続ストリングがカスタマイズされます。ユーザーがその接続を使用してクエリを実行する際に、ユーザーに割り当てられたユーザー属性値が適用され、ユーザーに基づいて接続をカスタマイズできます。

ユーザー属性に1つ以上の接続パラメーターを設定した場合、LookMLモデルで永続的な派生テーブル(PDT)を使用するには、別個のPDT資格情報を定義する必要があります(1つの例外として、BigQueryの[Max Billing Gigabytes]は、別個のPDTユーザーを作成しなくても、ユーザー属性に設定できます)。

構成

Lookerの[管理]セクションの[接続]ページから、ユーザー属性を使用するように任意の接続を設定できます([接続]ページについては、こちらのドキュメンテーションページを参照してください)。新しい接続を作成するには、[New Connection]をクリックします。既存の接続を設定するには、接続の横にある[編集]をクリックします。

[New Connection]ページと[Edit Connection]ページでは、ユーザー属性に設定可能な入力の右側には、ユーザー属性アイコン付きのボタンがあります。

ユーザー属性ボタンをクリックするとドロップダウンメニューが表示され、目的のユーザー属性を選択できます。

例えば、接続のデータベースをパラメーター化するために使用されるDatabase Nameというユーザー属性を次に示します。現在のユーザーのDatabase Nameユーザー属性の値demo_dbが括弧内に示されています。

[Additional Params]フィールドでユーザー属性を参照するには、LookMLで使用可能なものと同じLiquidテンプレート構文を使用します。ユーザー属性は、_user_attributes Liquid変数を通じて使用できるようになります。例えば、my_jdbc_param_attributeという名前のユーザー属性を参照するには、次の構文を使用します。

my_jdbc_param={{ _user_attributes['name_of_attribute'] }}

Lookerの[Additional Params]フィールドの例です。

ユースケース:Lookerでデータベースレベルの権限を適用する

データベースにアクセス制限がそれぞれ異なるアカウントが存在する場合、Lookerでデータベース権限を利用できます。各ユーザーがそれぞれのデータベースアクセスレベルに応じて適切な資格情報で接続するように、接続のユーザー名とパスワードをパラメーター化します。これにより、アクセス権がないデータがユーザーに表示されることがなくなりますが、Lookerでユーザーに表示されるExplore、ディメンション、メジャーはこの影響を受けません。

例えば、ユーザーが特定のアカウントを使用してデータベースに接続するように設定されており、そのアカウントではuserテーブルのcredit_card_number列を表示できないようになっている場合でも、Lookerでは、このデータベース列を使用するどのディメンションもユーザーに表示されます。ただし、そのディメンションを含むクエリを実行しようとすると、データベースからエラーを受け取ります。

ユースケース:複数の同一データベースに1つのモデルを使用する

まったく同じスキーマを使用する複数のデータベースがあるとします。例えば、データセキュリティ対策(HIPAAコンプライアンスなど)として各顧客のデータを独自のデータベースにサイロ化する場合などです。または、プロダクションデータベースの開発用コピーに対してLookML開発者にクエリを実行してもらうこともあります。

これらのデータベースが同じデータベースサーバーで稼働している場合、別個の接続やモデルを設定する必要はありません。代わりに、接続のデータベースをユーザー属性に設定すると、各ユーザーは、Database Nameユーザー属性の値で指定されたデータベースに接続されます。

接続でユーザー属性を使用すると、その接続について永続的な派生テーブルが無効になります。

データアクション

JSONペイロードに特定のユーザー属性を含むようにデータアクションを設定できます。これを使用して、特定のサービスに対して操作を実行するための資格情報など、ユーザー固有の情報をデータとともに送信します。

構成

ユーザー属性をデータアクションに含めるには、action定義にuser_attribute_paramブロックを追加します。これらのブロックはそれぞれ、次の2つのパラメーターを取ります。

下の例には、Lookerで各ユーザーのSalesforce資格情報を格納するために使用される2つのユーザー属性salesforce_usernamesalesforce_passwordを示しています。ユーザーがUpdate in Salesforceデータアクションを実行すると、LookerはJSONペイロードとともにSalesforce資格情報を送信し、受信側のサーバーはSalesforceに対する認証でそれを使用できます。

dimension: stage_name { type: string sql: ${TABLE}.stage_name;; action: { label: "Update in Salesforce" url: "https://example.com/my_salesforce_url" user_attribute_param: { user_attribute: salesforce_username name: "username" } user_attribute_param: { user_attribute: salesforce_password name: "password" } form_param: { name: "new_stage_name" type: string required: yes } } }

フィルタ

ExploreLook、およびダッシュボードのフィルタをユーザー属性に設定して、実行するユーザーに基づいてクエリをカスタマイズできます。

例えば、salesforce_usernameというユーザー属性を作成し、その値がそれぞれのSalesforceユーザー名になるように各Lookerユーザーを構成できます。その後、ダッシュボードのフィルタをsalesforce_usernameユーザー属性に設定すると、特定のSalesforceユーザー名についてフィルタリングされたダッシュボードが各ユーザーに表示されます。

構成

Explore、Look、またはダッシュボードの[Filter]セクションで、次の手順を実行します。

  1. 目的のフィルタについて[が次のユーザー属性と一致する]オプションを選択します。

    右側の選択ボックスが自動的に更新されて、数値、ストリング(テキスト)、日付など、フィルタのフィールドと同じタイプのユーザー属性のリストが表示されます。各ユーザー属性の値が括弧内に表示されます。

  2. 目的のユーザー属性を選択します。

高度なフィルタ構文

フィルタの簡単な等価チェックよりも複雑な操作を行うには、[が次に一致する(高度フィルタ)]を選択し、Liquid変数を使用してユーザー属性を参照します。

{{ _user_attributes['name_of_attribute'] }}

例えば、salesforce_usernameユーザー属性の値にsf_プレフィックスを適用する必要があるとします。この方法でデータベースに値を格納するためです。ユーザー属性値にプレフィックスを追加するには、Liquid変数構文を使用します。

同じパターンを使用して、LookMLのダッシュボードフィルタおよびダッシュボード要素フィルタにユーザー属性を挿入できます。

スケジュールされたダッシュボードおよびLook

ユーザー属性を使用するオプションを含め、スケジュールに基づいてダッシュボードおよびLookのフィルタを設定できます。これにより、それぞれのメール受信者のデータ配信結果をカスタマイズすることができます。スケジュールされたデータ配信スケジュールなしで送信されるデータ配信の両方についてデータ配信結果をカスタマイズできます。

例えば、salesforce_usernameというユーザー属性を作成し、その値を各ユーザーのSalesforceユーザー名に設定することができます。ダッシュボードまたはLookのスケジュールに基づくフィルタをsalesforce_usernameユーザー属性に設定すると、それぞれのSalesforceユーザー名でフィルタリングされたダッシュボードを各受信者が受け取ります。

前提条件

Lookerユーザーのみにユーザー属性値が設定されるため、データ配信のすべての受信者がLookerアカウントを持っている必要があります。ユーザー属性は、各受信者についてダッシュボードまたはLookを一度実行することによって適用されます。

構成

ダッシュボードまたはLookの[スケジュール]または[送信]ウィンドウを開きます。

  1. [Filter]セクションで、目的のフィルタについて[が次のユーザー属性と一致する]オプションを選択します。

    右側の選択ボックスが自動的に更新されて、フィルタと同じタイプのユーザー属性のリストが表示されます。各ユーザー属性の独自の値が括弧内に表示されます。

  2. 目的のユーザー属性を選択します。

  3. [メールオプション]フィールドの横にある[受信者としてスケジュールを実行する]チェックボックスを選択します。

アクセスフィルタ

行レベルのセキュリティを提供するアクセスフィルタを使用して、ユーザーがアクセスできるデータを制限することができます。access_grantパラメーターを使用することもできますが、ユーザー属性を指定してアクセスフィルタを使用する方が実装と保守が容易です。

アクセスフィルタを使用することで、ユーザー固有のデータ制限を安全に適用できます。LookML Exploreに1つ以上のアクセスフィルタを定義すると、Exploreから返されるデータが、クエリを実行するユーザーに基づいて確実にフィルタリングされます。つまり、アクセスフィルタによって制限が強化され、データベース接続から返されたデータの特定のサブセットのみがユーザーに表示されるようになります。

SQLに関する注記:アクセスフィルタでは、SQLのWHERE句に条件を挿入することにより、レベルのセキュリティが提供されます。ユーザー属性をLookMLで別の方法で利用することで、レベルのセキュリティを提供することもできます。詳細については、特定のユーザーの機密フィールドのマスキングに関する記事を参照してください。

構成

  1. ユーザー属性を作成します。
    • [User Access][なし](推奨)または[ビュー]に設定して構成します(ユーザーによる編集が可能として設定されたユーザー属性をアクセスフィルタに使用することはできません)。
    • ユーザー属性値をグループまたは個々のユーザーに割り当てます。
  2. アクセスフィルタを使用するExploreのLookML定義で、次のパラメーターを指定してaccess_filterブロックを追加します。
    • field:フィルタを適用するLookMLフィールドの名前
    • user_attribute:データのフィルタリングに使用する値を格納するユーザー属性の名前
  3. そのExploreに対してクエリを実行します。
  4. クエリのSQLのWHERE句を調べて、ユーザー属性の値に従ってデータがフィルタリングされていることを確認します。

次のLookMLでは、注文に関するクエリがブランドによってフィルタリングされ、companyというユーザー属性についてユーザーに割り当てられた値に基づいて、特定のブランドの注文が表示されます。

explore: orders { view_name: orders access_filter: { field: products.brand_name user_attribute: company } join: products { foreign_key: orders.product_id } }

Gitプロバイダーへの接続

LookMLプロジェクトについては、HTTPSを介したGit認証を設定できます。HTTPS Git認証を使用するプロジェクトでは、開発者の代わりにGit操作を実行する際に、ユーザー属性を利用して個々の開発者のGitアカウントにログインすることができます。

Gitアカウントパスワードのユーザー属性は非表示にされる必要があります。パスワード属性を作成するときには[Hide Values]オプションで[はい]を選択し、[Domain Whitelist]フィールドにGitプロバイダーURLを入力します。

アクセス権限によるアクセスの制御

ユーザー属性値、access_grantパラメーター、およびrequired_access_grantsパラメーターを使用して、LookMLのExplore、結合、ビュー、フィールドのアクセスを制限するアクセス権限を作成できます。

アクセス権限は次のように機能します。

  1. access_grantパラメーターを使用してアクセス権限を定義します。定義の一部として、アクセス権限をユーザー属性に関連付けます。アクセス権限へのアクセスを提供するユーザー属性値も指定します。
  2. 次に、Explore結合ビュー、またはフィールドレベルでrequired_access_grantsパラメーターを使用して、リストされているすべてのアクセス権限にアクセスできるユーザーのみにその構造へのアクセスを制限します。

例えば、アクセス権限を使用して、departmentユーザー属性の値がpayrollであるユーザーのみにsalaryディメンションへのアクセスを制限することができます。

アクセス権限を定義する方法の詳細については、access_grantのドキュメンテーションページを参照してください。

Liquid変数

LookMLでは、さらに複雑なタイプのカスタマイズ出力に役立つさまざまなLiquid変数を使用できます。ユーザーの属性値をLiquidに含めることができるようになりました。

例については、このドキュメンテーションページの接続のセクションを参照してください。

Google BigQueryのデータ制限

Google BigQueryをデータベースとして使用する場合、クエリごとにそのクエリのサイズに基づいて課金されます。ユーザーが誤って高額なクエリを実行するのを防ぐために、BigQuery接続[Max Billing Gigabytes]設定でユーザー属性を適用することができます。ユーザー属性で指定する値は、ユーザーが1つのクエリで取得できるギガバイト数である必要があります。

埋め込みダッシュボード

ユーザー属性値に基づいてフィルタ値を設定することにより、埋め込みLookや埋め込みダッシュボードに表示されるデータを制限できます。詳細については、こちらのコミュニティトピックをご覧ください。

ローカライズ

ユーザー属性localeおよびnumber_formatでは、データ、ビジュアリゼーション、およびLookerユーザーインターフェイスの一部の外観を特定のユーザーまたはユーザーグループ向けに設定できます。詳細については、Lookerのローカライズのドキュメンテーションページを参照してください。

ユーザー属性とアクセスフィルタのテスト

Lookerのsudo機能を使用して、ユーザー属性の効果をテストできます。管理者(またはsee_userssudoの両方の権限を持つユーザー)は、別のユーザーとしてsudoを実行することでLookerのエクスペリエンスがどのようなものかを確認することができます。

開発モードでは、変更をプロダクション環境にデプロイするまで、変更は他のユーザーに見えません。他のユーザーに見えるように変更をデプロイしていない場合は、sudoを使用して別のユーザーとして実行していても、その変更を見ることができません。

Top