Skip to main content
Izumi O fragte in Japan

現在行レベルセキュリティを以下のようにして運用しています

・[security_filter]フィールド(↓)を作成

IF

 

ISMEMBEROF("●●●") THEN [サブカテゴリ] != ""

//管理者用条件式。全部見れる

 

//特定のユーザーは、特定のサブカテゴリだけ見てよいという条件式

ELSEIF ISUSERNAME("▲▲@**.co.jp") THEN [カテゴリ] = "アプライアンス"

ELSEIF ISUSERNAME("●●@**.co.jp") THEN [カテゴリ] = "クリップ"

 

END

・これをデータソースフィルターで真に絞り込み

行レベルセキュリティをユーザーのテーブルにしてリレーションで管理したい 

しかしこれですと、

修正の際、ワークブックを開いて、計算フィールドを上書きするという手作業が発生し、しかもワークブックが30種類ほどあるのでミスの可能性があるので、できればExcelなどに表形式で「ユーザー⇔見ることができるサブカテゴリ」の対応表(↓)を作って、

imageリレーションを組んで、Excelを修正すれば自動で変更されるようにしたいです。

 

USERNAME()関数を使ってフィールド(↓)を作り、

imageそれをキーにして上手くやれないかと挑戦しているのですが、データソースシートに、作成した↑のフィールドが表示されず、苦労しております。

image 

何かいいやり方があれば教えて頂きたいです。

1 Antwort
  1. 18. Juli 2024, 11:05

    まずは行レベルセキュリティに関する公式ヘルプページを載せておきます。

    ユーザー フィルターを作成し、パブリッシュ用にセキュリティで保護する - Tableau

     

    USERNAME関数を利用した計算フィールドを作成しているようですが、結合(JOIN)もリレーションもデータソース上に作成した計算フィールドはキーに使用できないという制約があります(計算フィールドはデータソースを構築した状態で作成するものなので順番を考えると当然ではありますが)。

    今回はリレーションを利用しているということで、この場合は計算フィールドを作るのではなく計算に基づいた関連付けを使うことになります。

    まずは行レベルセキュリティに関する公式ヘルプページを載せておきます。ユーザー フィルターを作成し、パブリッシュ用にセキュリティで保護する - Tableau USERNAME関数を利用した計算フィールドを作成しているようですが、結合(JOIN)もリレーションもデータソース上に作成した計算フィールドはキーに使用できないという制約があります(計算フィールドはデータソースを構築した状態で作成するものなの 

    ひとつ注意点として、リレーションはひとつのシート内で複数の論理テーブルの情報が使用されるときだけ関係性を判定されます。上述のようなリレーションを組んだとしても、それだけでは行レベルセキュリティが成立しません。このあたりはリレーションの仕組みを理解すると同時に、冒頭に付けたリンクの内容を参照して実装してください。

0/9000