データ行レベルでのアクセスの制限

ワークブックを Tableau Server または Tableau Cloud にパブリッシュして他のユーザーと共有する場合、既定では、ワークブックへアクセスできるすべてのユーザーにビュー内のすべてのデータが表示されてしまいます。サーバーにサインインしたユーザーがビューで表示可能なデータ「行」を指定できるフィルターのタイプを適用することでし、この動作を上書きできます。

行レベルでデータを保護するこの方法は、ライブ接続を使用するデータ ソース、および表が複数の表として保存されている抽出データ ソースに適用されます。複数の表を使用した抽出データ保存の詳細については、データの抽出を参照してください。

注: Tableau の行レベルのセキュリティを実装するために使用できる代替方法については、Tableau Server ヘルプの「Tableau の行レベル セキュリティのオプションの概要(新しいウィンドウでリンクが開く)」を参照してください。

その他の関連情報については、ホワイトペーパー「資格テーブルを使用した行レベルのセキュリティに関するベストプラクティス(新しいウィンドウでリンクが開く)」を参照してください。

ユーザー ベースのフィルターリングのしくみ

数年にわたる、さまざまな地理的地域での、製品セットの四半期売上高のレポートを作成すると想定してください。

このレポートをパブリッシュする際は、各地域マネージャーに対し、彼らの地域に関連するデータのみの表示を許可する場合があります。各担当者に個別のビューを作成するのではなく、ユーザーの特性 (ロールなど) に基づいてデータへのアクセスを制限するユーザー フィルターを適用できます。

このようにしてデータへのアクセスを制限することを、行レベルのセキュリティ (RLS) と呼びます。Tableau は行レベルのセキュリティに対し、次アプローチを提供します。

  • 手動でユーザー フィルターを作成し、ユーザーを値にマッピングする

    この方法は便利ですが、手がかかり、セキュリティが不透明になる可能性があります。ワークブックごとに行う必要があり、ユーザー ベースが変更されるたびにフィルターを更新してデータ ソースをパブリッシュし直す必要があります。

  • データでセキュリティ フィールドを使用して動的フィルターを作成する

    この方法を使用して、ユーザーをデータ値へマッピングするプロセスを自動化する計算フィールドを作成します。この方法では、フィルターに使用するセキュリティ情報が参照元データに含まれている必要があります。

    最も一般的なのは、この情報を含む参照 (「ルックアップ」、「エンタイトルメント」、または「セキュリティ」) 表を使用する方法です。たとえば、ビューを管理者のみが表示できるようにフィルターする場合は、参照元データを設定してユーザー名を含め、各ユーザーの役割を指定する必要があります。

    フィルターリングはデータ レベルで定義され、計算フィールド別に自動化されるため、このメソッドはユーザーを手動でデータ値にマッピングするよりも安全です。

データ ソースへのユーザー フィルターの追加

以前のセクションの 2 つのメソッドでは、ワークブックに埋め込まれたデータにフィルターを追加する方法について説明しています。複数のワークブックが同じデータに接続している場合、各ワークブック上で複数のフィルターを使用する代わりに、データ ソースをフィルターしてから、パブリッシュ後にワークブックをデータ ソースに接続させることができます。

フィルターされたデータ ソースに接続するワークブックは、サーバーにサインインしているユーザーが見ることを許可されているデータのみを表示します。さらに、接続されているすべてのワークブックはデータの更新を実行と同時に表示します。

抽出と、ユーザー フィルターを使用したライブ接続

一般的に、上記メソッドのいずれかを使用する場合、抽出を使用した RLS の方がライブ接続を使用するデータ ソースを使用した RLS よりも速く作成され、パフォーマンスも高くなります。

抽出データ ソースを使用した RLS の要件

上記で述べたように、抽出を使用した RLS を使用するための最初の要件は、抽出のデータを複数物理テーブルを使用して保存する必要があるということです。抽出を構成し、次のデータの抽出に従って複数の物理テーブルを使用してデータを保存できます。

抽出を使用した RLS を使用する予定がある場合は、上記要件に加えいくつかの追加事項を検討します。複数の表を使用して保存された抽出データは、抽出フィルターや抽出データ量を減らすのに役立つその他のいくつかの機能をサポートしていないため、次の提案事項のいずれかを使用することを検討します。

  • カスタム SQL を使用してデータに接続する

  • すでに適切なレベルのフィルターリングが適用されているデータベース ビューに接続する

これらの提案の詳細については、データの抽出を参照してください。

抽出データ ソースを使用した RLS での推奨されるプラクティス

抽出を使用した RLS を効果的に実行するため、Tableau では抽出時に 2 つの表 (またはデータベース ビューや カスタム SQL クエリ) を保持しておくことをお勧めします。つまり、抽出時の表は次のタイプの表で構成するようにします。

  • データ表 - これは、表示するすべてのデータが含まれる「オブジェクト」の表です。

  • 参照表 - これは、ユーザー情報およびユーザーが所属するセキュリティ グループが含まれる「ルックアップ」または「エンタイトルメント」の表です。

抽出内の表をこれらの 2 つに最小化することで、Tableau で実行する必要のある結合がこれらの 2 つの表の間でのみ実行されるため、データの重複や「結合の爆発」を回避することができます。

RLS および Tableau の以前のバージョンについて

行の重複やパフォーマンスに関する複雑性から、これまで Tableau では抽出を使用した RLS ワークフローをサポートすることができませんでした。最終的には、これらの複雑性はデータが単一の表としてのみ保存されクエリできる抽出によって発生していました。しかし、Tableau 2018.3 以降は、複数の表を使用して抽出のデータ保存を選択できるようになりました。これにより、これまでライブ接続を使用してデータ ソースで実行していた、抽出を使用した RLS のワークフローが有効になります。

Tableau での抽出を使用した RLS に関する包括的なディスカッションについては、この分野で豊富な経験を持つ Tableau の販売コンサルタントが管理するブログを参照してください。

免責条項: このリンクをクリックすると、Tableau.com から離れます。外部 Web サイトへのリンクが正確かつ最新で関連性が高いものであるように確保するために極力努めていますが、Tableau では外部コンテンツへのサポートは提供せず、それらについて責任は負いかねます。

関連項目

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!