【Tableau】ビュー表示範囲の制御方法
Tableau導入プロジェクトで躓いた点や発見をTipsとしてまとめます。
導入時の参考にしてみてください!
背景
あるクライアントから「管理職と一般職でダッシュボードの表示範囲を制御したい」と要望いただき対応したので、その際にインプットした情報を取り纏めます。
対応
Tableauでは、ユーザーに応じてワークブックの表示範囲を制御する方法がいくつかあります(2023.12.08時点調べ)。
ユーザーフィルタ:ユーザーフィルタを作成して、特定のユーザーグループに対してデータの表示を制限することができます。これには、Tableau ServerまたはTableau Onlineでユーザーをグループに分け、ワークブックにフィルタを適用する作業が含まれます。
行レベルセキュリティ:データソースレベルでセキュリティを設定し、特定のユーザーが特定の行データのみを表示できるようにします。これにより、ユーザーがアクセスできるデータ範囲が限定されます。
Tableau ServerまたはCloudの権限設定:Tableau ServerやTableau Cloudでは、プロジェクト、ワークブック、ビューごとに異なるアクセス権を設定できます。これを利用して、特定のユーザーやグループに対して特定のビューへのアクセスを許可または制限できます。
今回のクライアント要望は「管理職、一般職共に同じダッシュボード(ワークブック)を見せたいが、一般職が見た時だけ、特定のデータが表示されないように制御したい」です。
Tableau ServerまたはCloudの権限設定は、ワークブックそのものに対してのアクセス制御となるため不採用。
結果、ユーザーフィルタか行レベルセキュリティのいずれかで対応検討することになるのですが、そもそも違いがよく分からず、、、再リサーチしたので改めて取り纏めます。
両者の違いは、実装方法と適用範囲の違いとなるようで、以下に詳細を記載します。
ユーザーフィルタ
「ワークブック」レベルで適用され、特定ユーザーやグループの表示範囲を制御するために使用される。
Tableau Desktopで作成され、Tableau ServerやCloudで公開された後に適用されることが多い。
行レベルセキュリティ
「データソース」レベルで設定され、特定のユーザーのアクセス可能なデータ行を制限します。
データソース自体に組み込まれ、使用する全てのワークブックやビューに影響を与える。
結論、今回はユーザーフィルタを採用し、クライアント要望に対応しました(データソースレベルで制御すると、ワークブックの影響整理やデータソース変動時の工数負荷が跳ね上がりそうで、導入スケジュール超過リスクがあったため)。
検証
以下、ユーザーフィルタ機能を検証したので設定手順を記載します。
Tableau Desktopでワークブックを準備する
Tableau ServerまたはCloudにログインする
ユーザフィルタを設定する
テスト
Tableau ServerまたはCloudに公開
1.Tableau Desktopでワークブックを準備する
ワークブックは、いつもの「サンプル-スーパーストア.xlsx」で各カテゴリの「売上」を「地域」軸でビュー表示したもの用意しました。
各地域マネージャーは、自分の担当地域の売上しか表示されない仕様となるようにユーザーフィルタの設定検証を行いました。
2.Tableau ServerまたはCloudにログインする
表示制御対象のユーザー(アカウント)情報が必要となるため、Tableau ServerまたはCloudにログインします。
3.ユーザーフィルタを設定する
Tableau Desktopの「サーバー」メニューから「ユーザーフィルタを作成」を選択した上で、表示制御対象のディメンションを選択します。
今回は、表示制御対象のディメンションは「地域マネージャー」を選択し、ユーザー/グループごとに表示させたい要素を選択しユーザーフィルタを作成します。
そして、作成したユーザーフィルタのピルが選択したディメンション付近に生成されるため、当該ピルをワークシートのフィルタに適用することで表示制御が実現できます。
4.テスト
ユーザーフィルタを適用したユーザーアカウントにてワークブックを表示すると、見事に地域マネージャー「雨宮 武」が担当している「中国地方」のみ表示されるように制御できました!
おわりに
ユーザーフィルタ機能をベースにユーザー/グループ単位を工夫することで、手軽にワークブックの表示制御できるため使い勝手良いなと思う一方で、ユーザー/グループが増えるとメンテが面倒だなとも思いました。。。
これの対処方法として今回検証した「手動設定」のほかに「自動設定」もあるようなので、行レベルセキュリティも含めて、また別の機会に検証してみようかなと思います(ちなみに行レベルセキュリティは、私の師匠であるmomoさんが記事(こちら)を書いていますので参考にしてください)。
似たような導入ケースがある場合はぜひこちらの検証手順を参考にしてみてください!
参考リンク
この記事が気に入ったらサポートをしてみませんか?