Tableau で列レベルセキュリティの使用方法について
はじめに:
前回の記事では、Tableau で行レベルのセキュリティを有効にするいくつかの方法について説明しました。いくつかのシナリオでは、列レベルのセキュリティが必要になります。一つの例としては医療関係者のデータで、例えば医師は患者の全てのデータを表示することできて看護師などはそれらの患者の特定の列のみへのアクセスを制限している場合があります。Tableau では列レベルのセキュリティが許可されていないため、列レベルのセキュリティを組み込むために考えられるいくつかの回避策がここでご紹介しています。
列レベルセキュリティーの使用方法:
1) データソースで列のフィルターを作成する
Tableau で列レベルのセキュリティフィルターを作成するためにユーザー関数 ismemberof() を使用します。最初に、Tableau サーバー (またはTableau クラウド) でグループを作成し、メンバーはそのグループに割り当てます。いかに示すようこれらのグループには、適切なデータにアクセスするための権限を割り当てることができます。
「Tax Rate」列に列レベルセキュリティーを適用することがあったら、以下に示すように計算フィールドを作成します。目的の「B」グループにはこの列にアクセスできるようすることでそのグループに含むメンバーのみが「Tax Rate」の内容が見ることができます。
次は、目的の「Tax Rate」列を非表示にし、「Tax Rate NEW」を利用してダッシュボードを作成します。
最後に、このダッシュボードを Tableau サーバー(または Tableau クラウド) にパブリッシュします。以下示すようにグループ B に属するユーザーはデータを見ることができますが、別のグループのユーザーは何も表示できないです。
この手法は、複数のグループや複数の計算フィールドを作成して維持するなど、手間のかかる手作業を必要とするため、スケーリングが困難です。この方法は対象とする列数が少ない場合に最適です。制限されたユーザーが対象とする列の内容を見ることはできませんが、データペインに表示される列の名前を見ることはできるため、列の名前を選択する際には注意が必要です。
2) 複数のデータセットとその連携するダッシュボードの作成
ソースデータの複数のサブセットを作成することで、アドホックでデータを制限することができます。これらのデータ サブセットには、特定のユーザーグループを対象に限られた列 (または行) を作成することができます。その後、データサブセットを使用しダッシュボードを作成します。
ETL プロセスを介してデータ抽出や作成がを自動化できるため、データ管理者は、ソースデータのいくつかのサブセットを簡単に作成および管理することができます。ただし、新しいコンテンツの準備と管理、および同じダッシュボードの複数のバージョンを処理するためにかかる追加の手間を考えた上で、ダッシュボード作成者にとってこれは理想的なシナリオではない。
3) データベースへのアクセス時の偽装
いくつかのデータベース (Microsoft SQL Server など) では、セキュリティーフィルターが組む込まれたビューのみにデータベースのユーザーがアクセスできるように設定することができます。Tableau では、"偽装" と呼ばれる概念を使用してこれを活用できます。
Tableau Server のパブリッシュされたデータ ソースにアクセスできるすべてのユーザーに対してセキュリティーレベルのフィルターリングを有効にするには、AD 実行アカウントまたは SQL サーバーの埋め込み認証資格情報に、ダッシュボードまたはデータ ソースにアクセスするデータベース内のすべての Tableau ユーザーに対する EXECUTE AS 権限が含まれている必要があります。すべての Tableau ユーザーがユーザーとしてデータベースサーバーに存在し、接続先のビューに対する SELECT 権限を持っている必要があります。
最後に:
列レベルのセキュリティを実現するには、いくつかの方法があります。Tableau 利用者は状況を評価し、最良のシナリオを実装できます。