ユーザーフィルタについてご紹介します
Tableauでは、データソースやワークブックにセキュリティをかける方法はいくつかありますが、今回はユーザ側でセキュリティレベルを設定(アクセスを制限)する方法についてご紹介致します。
ユーザが作成したワークブックをTableauServerにPublishする際、ユーザ毎に表示できるデータを制限する方法となります。
Serverでワークブック(ビュー)を多くのユーザに共有するにあたり、そのワークブックにアクセスできる人がすべてのデータを閲覧すると都合が悪いケースなどもあるかと思います。
このような場合は、今回の方法をご参考にして頂けたらと思います。
※今回ご紹介する方法は、いずれもTableauServer上で閲覧するユーザ向けのセキュリティフィルタとなっております。
(プロジェクトフォルダにPermission設定が施されており、ワークブックやデータソースのダウンロード権限や、Web編集権限がないユーザがアクセス制限の対象となります)
Createrライセンスを所有しているユーザは、ワークブックをダウンロードして、セキュリティ用に設定されたフィルタを
除外すれば、データなど参照できるようになります。
ユーザーフィルタの種類
今回、比較的、設定しやすいユーザフィルタを2つご紹介します。
1.手動で設定するユーザーフィルタ
ユーザ毎に参照可能なディメンションを指定してアクセス制限のフィルタをかける方法となります。
設定自体は簡単ですが、個々に設定する手間がかかる方法です。
2.Excelなどで用意したユーザーリストで設定するユーザーフィルタ
ユーザー毎に参照可能なディメンションをリスト化し、これをデータと紐づけて、アクセス制限のフィルタをかける方法となります。
リストで一括して設定が可能ですが、仕組みが少し複雑になります。
それぞれの詳細については以下となります。
1. 手動でユーザー単位、グループ単位で設定するユーザーフィルタ
Tableau Desktopの標準機能に”ユーザーフィルタ”というものが用意されています。
TableauServerにアクセス可能なユーザ単位、もしくは予め作成されたグループ単位で、特定のディメンションに対してアクセス制限を個別にセットする方法となります。
以下のような設定画面から、ユーザー(またはグループ)に対して、特定のディメンションのみ許可を与えるイメージです。
※TableauServerにサインインしている必要があります。
アクセス制限をかける対象ユーザが少ない場合は、上記の画面で1人1人設定していく方法として利用できます。
ただし、1人1人個々に設定することで煩雑な作業となり、管理の面で負担が増える可能性があります。
TableauServerのユーザ設定関連で、グループを作ることができ、グループ単位で上記を設定することも可能です。
(グループの作成については、TableauServerの管理者へお問合せください)
グループ単位で設定しておけば、ユーザの増減があった際、TableauServerのグループの設定を変更するのみで
セキュリティ設定を更新することができます。
例としては、
TableauServer側の設定でグループに”〇〇課”のように作成し、該当ユーザを登録します。
上記のユーザーフィルタで、グループ毎に参照権限を設定していきます。(〇〇課は、関東地方にチェック 等)
グループ内の人がTableauServerでそのワークブックをみるとき、自分が所属するグループに設定されたデータだけ
閲覧できるようになります。
大まかな範囲でのセキュリティ設定で問題ない場合は、グループ単位の設定なども考えてみるとよいかと思います。
2. Excel等のユーザリストを用いたユーザーフィルタ
Tableauのデータソースに、Excelなどでユーザーフィルタリストを別に接続し、Tableauのユーザーログイン情報を基にアクセス制限をかける方法となります。
USERNAME関数、FULLNAME関数などのユーザ関数がTableauでは利用可能です。
USERNAME関数
現在のユーザーのユーザー名を返します。これは、ユーザーがサインインしている場合は Tableau Server または Tableau Online のユーザー名、それ以外の場合は Tableau Desktop ユーザーのローカルまたはネットワーク ユーザー名になります。(Tableau ヘルプより抜粋)
FULLNAME関数
現在のユーザーのフル ネームを返します。これは、ユーザーがサインインしている場合は Tableau Server または Tableau Online のフル ネーム、それ以外の場合は Tableau Desktop ユーザーのローカルまたはネットワーク フル ネームになります。(Tableau ヘルプより抜粋)
※どのようなユーザー名やフルネームになっているか利用環境によりますので、もしご興味のある方は一度確認してみてはいかがでしょうか。
Tableauで何でも良いのでデータを読み込み、計算フィールドで”USERNAME()”、または"FULLNAME()" を作り、シート上にテキストで表示すると今の設定が確認できます。FULLNAME関数で表示されるものは、Tableau画面の下側に表示される名前と同じものです。
※USERNAME関数も同様に確認することができます。
これらがTableauのログインの際に紐づく情報となり、これを利用してユーザーフィルタをかけます。
以下がその利用イメージとなります。左側は通常扱うデータで、右側がセキュリティをかけたいユーザフィルタリストとなっています。
これらを紐づけたあと、ユーザー関数とユーザーフィルタリストで条件式を作り、一致する場合のみTRUE(真)でフィルタをかけます。これにより、ログインユーザが紐づくレコードのみが表示されるようになります。
次に、それぞれ順にセキュリティフィルタのかけ方を説明いたします。
1. 手動で設定するユーザーフィルタのかけ方
Tableau Desktopでの作業となります。(ServerやOnline上では不可)
セキュリティフィルタをかけたいワークブックを用意します(Tableau Desktop)。
メニュー ➡ サーバー ➡ ユーザーフィルターの作成 を開きます。
フィルタをかけたいディメンションをクリックします。(例:地域)
ユーザーフィルタの設定画面が表示されます。
左側の検索欄で、ユーザ名を入力し、エンターを押すと候補が表示されます。
ユーザ名をクリックすると、右側にディメンションのフィルタ設定欄が表示されるので、表示させたいものにチェックを入れます。(チェックを入れると、ユーザ名の右側にも ✔ マークが表示されます)
セキュリティフィルタが必要なユーザの設定が完了したら、OKを押します。(ディメンション欄に「ユーザーフィルター1」が追加されます)
ディメンションに追加されたユーザーフィルタを、フィルタの欄に追加すると、フィルタが適用されます。(この例では、関東地方だけ閲覧できるよう設定)
同様の方法で、例えば、カテゴリを”家電”のみ許可するユーザーフィルタを作成して、同様にフィルタに追加すると、地域:関東地方、カテゴリ:家電 という複数条件も可能です。
2. セキュリティ用のリストを用いた動的なユーザーフィルタのかけ方
先の例は、ユーザやグループ単位でフィルタ条件を作成する方法でした。
次にご紹介するのは、Excelなどのリストでユーザフィルタに関するデータを用意し、扱うデータソースとユーザフィルタ用のデータを結合(またはリレーション)させて、ユーザー関数を用いてセキュリティをかける方法です。
※1と同様、TableauServerにサインインして利用します。
まずは、先と同様にセキュリティフィルタをかけたいワークブックを用意します(Tableau Desktop)。
次に、ユーザにどのような制限をかけるかリストを用意します。以下の例はExcelで、ユーザ名、カテゴリ、地域 で、閲覧許可を与えるもののみ列挙しています。
データソースのあるワークブックで、ユーザーフィルタリストを追加します。2つのデータは、データブレンドでリレーションにより紐づけを行います。
ユーザフィルタリストのデータ側で、計算フィールドにて、リストにあるユーザ名 =ユーザー関数(ログインした人のユーザ名を表す、FULLNAME関数)を作成します。
これを、フィルタ欄に入れて、真(TRUE)にセットすると、以下のようにフィルタがかかります。
別のユーザに切り替えた例を記します。
この方法であれば、Excelなどでユーザのセキュリティ設定を管理することができます。
ユーザーフィルタリストをTableauServerのデータソースとしてパブリッシュしておき、それをワークブックのほうで使うように予め設定してTableauServerにパブリッシュしておけば、
TableauServer上のユーザーフィルタリストを更新すると、TableauServerのワークブックのセキュリティが更新される、という運用をすることも可能です。
Tableauでは、様々なセキュリティの設定方法がありますが、今回はユーザ側で設定する代表的な方法についてご紹介させて頂きました。
※Tableau Version 2021.3.0時点での情報です