その他お問い合わせ先

lodestar@truestar.co.jp

運営会社

株式会社truestar
truestar activation株式会社

Tableauで閲覧ユーザごとに権限管理

Tableauでのアクセス制御について

作成したダッシュボードをユーザによって見せる、見せないを制御したいという場合、ユーザ毎の権限管理が必要になります
所属部署や、担当地域によって特定の領域だけデータを見られるようにしたい、といったようなケースです。Tableau Serverにはユーザまとめるためにグループを作ることが可能なので

例:部署でグループを作る

単に「ワークブック単位」でビューの表示権限を制御したいだけなら
TableauServerで”パーミッション”設定をすれば簡単にワークブックを特定のグループ(ユーザ)に見せる、見せないというのは制御できます

ですが、ビュー自体の閲覧権限は与えつつ、見るユーザによって閲覧できるデータの範囲を制御したい場合にこの機構は使えないので、
そのビューの作りの中で制御する必要があります。今回はデータをユーザ毎に制御する方法を試します

ISMEMBEROF()を使って制御する

Tableauで使える関数の中にTableau Serverで定義された特定のグループに所属しているかどうか、を判定する関数
ISMEMBEROF()があるのでこれを利用します。
この関数は括弧内の引数で指定したグループにユーザが属しているかどうかをtrue/falseで返します

例として「地域ごとの利益率データ」表示するビューを使い、”担当の地域”だけ表示するというケースを想定して制御をかけてみます
前準備としてまずはTableauServerにグループを作ります
地域ごとにデータを制御したいので試しに「関東」、「関西」、「その他」という3つのグループを作りました。

地域別の利益率を月ごとに表示した簡単なグラフを例にとります
(データはTableauにデフォルトで付属している”スーパーストア”のデータを使いました)

デフォルトでは特に権限制御はしていないので全ての地域の利益率が表示されます
これをアクセスするユーザが所属しているグループによって、特定の地域のみ表示するという制御を加えます

まずは特定のグループに所属するユーザがこのビューを表示したとき、表示可能なデータの範囲がどの部分になるのかを判断するために、
“定義したグループごと”に許可/不許可を判別するためのデータを作ります
この判別用のデータはあらかじめデータとして持たせた方がTableauで計算させる必要がなくなりますが、今回は簡単にTableauで生成してしまいます

関東グループには、地域が関東のみのデータを見せたいので、データが”関東地方”の場合にtrueを示すデータを作ります、所属グループが関東のユーザに対してはこのデータだけを見せることになります。
これをグループごとに作り、各グループに所属しているユーザがどのデータを見ればよいのか判定できるような状態にしておきます
これで地域ごとに3つのグループそれぞれで真偽の判別が可能になります

最後にこの判別用のデータとユーザの所属するグループから、最終的にどのデータを表示させるのかを制御するための表示許可データを作ります。
ここはユーザに応じて動的な要素とのなるので、Tableauの計算が必須です

自分の所属グループが関東なら関東グループ用のデータ、関西グループなら関西グループ用のデータがTRUEとなるように作っています

最後にこの表示許可データがTRUEの場合のみ表示するという条件でフィルタにいれることで、
閲覧ユーザが所属するグループに応じて表示制御ができます

 (関東グループのユーザが閲覧した場合)

(関西グループのユーザが閲覧した場合)

注意点

今回の場合、制御したいグループの数に応じた判別用のデータを持っておく必要があるため、制御したいグループが大量にある場合には向きません。

また、ISMEMBEROF()の関数は引数で与えるグループ名を文字列として決めうちで表記する必要があり、
Tableau Server上でのグループ名が変わった場合に機能しなくなるデメリットがあります

用途に応じて、適切に使えるかどうか考慮してためしてみてください

Toshihiro Rokusya