30日間の無料評価版をお試しいただけます。

概要

アクセスフィルターは、レポートを実行中のユーザーに基づいて、表示するデータを制限することができます。例えば、管理職に、自身の部下の人事データだけを閲覧させたい場合に使用することができます。アクセスフィルターは、Yellowfin内で任意の参照IDを持つユーザーを検索し、レポート実行時に、そのIDをフィルターとして使用します。

アクセスフィルター設定手順は、以下の通りです。

  1. データソース上でアクセスフィルターを作成します。
  2. 作成したアクセスフィルターを、ビュー上のフィールドに適用します。

  3. ビュー上で、デフォルトのアクセスフィルターを定義します。

  4. レポートにアクセスフィルターを適用します。

参照タイプの設定

作成したすべてのソースフィルターは、参照タイプを使用して、カテゴライズをする必要があります。これは、ソースシステム内のデータを、Yellowfinのメタデータとリンクさせる時に使用します。また、対象のビューに対して、利用可能にすることのできるフィルターのタイプを、カテゴライズする方法も提供します。

1.  アクセスフィルター一覧下部にある、「参照タイプの設定」ボタンをクリックします。

2.  参照タイプ名を入力し、「追加」ボタンをクリックします。あるいは、既存の参照タイプ名の横にある「×ボタン」をクリックして、これを削除します。

注意:フィルタータイプを削除したい場合、編集ポップアップにてタイプを選択し、削除をクリックします。変更を保存するために、「OK」ボタンのクリックを促されます。使用中のタイプを削除した場合、レポートのフィルタープロセスに影響します。

アクセスフィルターの作成


1.  接続詳細ページで、アクセスフィルターの項目を開きます。

2. 新しいアクセスフィルターを作成するために、「追加」ボタンをクリックします。

アクセスフィルターを初めて作成する場合は、こちらのメッセージが表示され、アクセスフィルターがどのように機能するのかを確認することができます。

次回アクセスフィルターを作成する際に、このメッセージを表示させないのであれば、「次回からこのメッセージを表示しない」、をクリックします。

次回もこのメッセージを表示するのであれば、「続行」をクリックします。

3. アクセスフィルターレコードを指定する方法を選択します。以下のオプションを利用することができます。

  • 手動 - アクセスフィルターの組み合わせを手動で登録することができますが、レコードのメンテナンスはユーザーに依存します。こちらのオプションは一般的に、以下の方法を使用する前に、アクセスフィルターの仕組みを確認するために用意されています。


  • レポート - レポート結果を、アクセスフィルターのレコードとして使用することができます。こちらのオプションには、アクセスフィルターのレコードとして利用できるレポートが必要です。


  • SQLクエリー - アクセスフィルターのためのレコードを返すSQLクエリーを記述して、SQLを実行することでアクセスフィルターのレコードを登録することができます。


  • CSV - アクセスフィルターのレコードの登録方法として、CSVファイルをアップロードして登録することができます。

  • インラインSQL - アクセスフィルター値が必要になるたびに実行されるパラメーターを含むSQLクエリーを入力することができます。

フィルターパラメーター

各アクセスフィルターには、Yellowfin ユーザーの参照IDと一致する1つ以上のレコードが一覧に含まれています。これらのレコードは、次の4つの方法でシステムに登録することができます。手動入力、CSVファイル、Yellowfin レポートから、ソースデータベース上でのSQLクエリーのスケジュール実行です。

どの方法を選択した場合でも、以下の4つのフィールドを1レコードとして、この順序通りに登録する必要があります。

識別子のタイプ

識別子フィルタータイプ参照ID

識別子のタイプと識別子は、Yellowfinユーザーを特定するために使用します。

識別子のタイプは、以下のいずれかになります

  • EMAIL (電子メールアドレス)
  • USERID (ユーザーID)
識別子フィールドは、識別子のタイプで指定したユーザー識別子(電子メールアドレス、YellowfinユーザーID、ユーザーIDのいずれか)を使用します。

フィルタータイプフィールドは、どのようなタイプのフィルターなのかを定義するために使用します。これは、ユーザーがビューやレポートを作成する際に表示される名称です。そのため、ユーザーに分かりやすい名称を使用してください。

フィルタータイプを追加したり、削除したりする場合は、接続ページで参照タイプの設定ボタンをクリックしてください。

参照IDフィールドは、ユーザーに付随する値を指定します。参照IDで指定した値をフィルターの値として使用します。

手動アクセスフィルター

設定

アクセスフィルターレコードを、どのように指定し、更新するのかを定義するために、すべての設定をおこなう必要があります。

設定説明
名前データソース接続のページとスケジュール管理のページで、このアクセスフィルターを識別できるように名前を指定します。
参照タイプ

ビューでフィールドに関連付けるときに、アクセスフィルターの値を識別できるようにラベルを指定します。

より詳細な情報は、参照タイプの設定を参照してください。

更新タイプ

更新タイプには、2つのオプションがあります。

  • 追加:新しいアクセスフィルターの値を、現在のレコードの一覧に追加します。
  • 上書き:新しいアクセスフィルターの値で、現在のレコードの一覧を置き換えます。
更新通知定期的にこれらのレコードを更新をするためのリマインダーとしてシステムタスクを作成し、スケジュールを定義します。

ユーザー

値を割り当てたいユーザーを検索し、一覧からユーザー名を選択します。

各ユーザーに関連する値を定義します。各行に入力できる値は1つだけなので、複数の値を設定したい場合は、対象のユーザーを必要な回数追加してください。

レコード

アクセスフィルターに読み込まれたすべてのレコードを確認することができます。

使用

使用数を確認することで、アクセスフィルターがどのように、いつ使用されているのかを特定することができます。

 

レポートアクセスフィルター

設定

アクセスフィルターレコードを、どのように指定し、更新するのかを定義するために、すべての設定をおこなう必要があります。

設定説明
名前データソース接続のページとスケジュール管理のページで、このアクセスフィルターを識別できるように名前を指定します。
レポートの選択

アクセスフィルターのレコード登録用に設定されているレポートを選択します。

更新タイプ

更新タイプには、2つのオプションがあります。

  • 追加:新しいアクセスフィルターの値を、現在のレコードの一覧に追加します。
  • 上書き:新しいアクセスフィルターの値で、現在のレコードの一覧を置き換えます。
更新スケジュールアクセスフィルターレコードを、スケジュールに基づいて自動的に更新するかどうかを定義します。

レポート

アクセスフィルターレコードとして使用するレポートを選択するために、こちらの設定が有効の状態で保存されたレポートが必要です。

右のようなレポートを使用することができます。

レコード

アクセスフィルターに読み込まれたすべてのレコードを確認することができます。

使用

使用数を確認することで、アクセスフィルターがどのように、いつ使用されているのかを特定することができます

SQLクエリーアクセスフィルター

設定

アクセスフィルターレコードを、どのように指定し、更新するのかを定義するために、すべての設定をおこなう必要があります。

設定説明
名前データソース接続のページとスケジュール管理のページで、このアクセスフィルターを識別できるように、名前を指定します。
データソース

アクセスフィルターレコードを返すクエリーを実行するデータソースを選択します。

新規ユーザー作成による自動更新

新規ユーザーが作成されるたびに、アクセスフィルターレコードを自動的に更新するかどうかを定義します。

SQLクエリ―アクセスフィルターの値を返すために使用されるクエリ―を定義します。フィルターパラメーターで概略されている書式を使用してください。

 

SQLを定義したら、テストをする必要があります。「テスト」ボタンをクリックすると、データベースからエラーが返されるか、「SQLは有効です」、というメッセージが表示されます。

 

設定説明
更新タイプ

更新タイプには、2つのオプションがあります。

  • 追加:新しいアクセスフィルターの値を、現在のレコードの一覧に追加します。
  • 上書き:新しいアクセスフィルターの値で、現在のレコードの一覧を置き換えます。
更新スケジュール

アクセスフィルターレコードを、スケジュールに基づいて自動的に更新するかどうかを定義します。

設定が完了したら、「送信・実行」ボタンをクリックしてアクセスフィルターを保存し、値を読み込みます。

レコード

アクセスフィルターに読み込まれたすべてのレコードを確認することができます。

使用

使用数を確認することで、アクセスフィルターがどのように、いつ使用されているのかを特定することができます。

 

CSVアクセスフィルター

使用するCSVファイルは、上記に表示した通り、4つのフィールドでレコードが構成されていなくてはなりません。ファイルは、ヘッダー行を含み、タイトルは「Identifier Type」、「Identifier」、「Reference Type」、「Reference Id」でなければなりません。

設定

アクセスフィルターレコードを、どのように指定し、更新するのかを定義するために、すべての設定をおこなう必要があります。

設定説明
名前データソース接続とスケジュール管理のページで、このアクセスフィルターを識別できるように名前を指定します。
ファイル

アクセスフィルターレコードに値を提供するために、CSVファイルをアップロードします。フィルターパラメーターで概略されている書式を使用してください。

更新タイプ

更新タイプには、2つのオプションがあります。

  • 追加:新しいアクセスフィルターの値を、現在のレコードの一覧に追加します。
  • 上書き:新しいアクセスフィルターの値で、現在のレコードの一覧を置き換えます。
更新通知定期的に、これらのレコードの更新をするためのリマインダーとしてシステムタスクを作成し、スケジュールを定義します。

 

レコード

アクセスフィルターに読み込まれたすべてのレコードを確認することができます。

使用

使用数を確認することで、アクセスフィルターがどのように、いつ使用されているのかを特定することができます。

 

インラインSQLクエリーアクセスフィルター

このタイプのアクセスフィルターの適用は、ユーザーとフィルター値の組み合わせが膨大な量になるお客様向けに導入されました。インラインSQLクエリーアクセスフィルターは、クエリー実行時に動的に実行され、より効率的です。SQLクエリーは、現在のユーザーのIDなどのパラメーター値を受け入れることができます。一致する値を返すために、SQLクエリー断片がクエリーに挿入されます。この方法では、アクセスフィルターが作成される対象のデータベースを使用するため、データベース接続は必要ありません。また、クエリーは毎回動的に実行されるため、この方法では値はキャッシュされません。

設定

アクセスフィルターレコードをどのように指定し、更新するのかを定義するために、すべての設定をおこなう必要があります。

設定説明
名前接続やタスク画面でこのアクセスフィルターを識別しやすい名前を提供します。
SQLクエリー

アクセスフィルター値を返すために使用されるクエリーを定義します。フィルタークエリーは、単一のユーザーのデータを返します。フィルターパラメーターには、以下のトークンのいずれかを使用してください。

?USERID? 

?EMAIL? 

?YFPERSONID? 

?FILTERTOKEN?

SQLを定義したら、これをテストしなくてはいけません。テストボタンをクリックし、任意のパラメーターに値を入力します。これらのパラメーターはテスト用であり、実行時に実際の値に置き換えられます。データベースから返されたエラーが表示されるか、有効なメッセージが表示されます。完了したら、送信・実行ボタンをクリックして、アクセスフィルターを保存します。


この方法に関するその他の注意事項:

  • SQLクエリーの代わりに、カスタムデータベース関数/プロシージャを使用することもできます(SQLで直接呼び出せる場合)。
    例: getCountriesForUser({USERID})
  • インラインSQLクエリーに基づくソースフィルターを実装したビューは、シグナルおよびキャッシュされたフィルターと互換性がありません。
  • フィルタートークンは、SSOプロセスを介してユーザーセッションに渡すことができます。これは、SSOペイロードのパラメーターオプションで設定され、FILTERTOKEN=value という形式である必要があります。SQLに ?FILTERTOKEN? 参照が含まれ、フィルタートークンがセッションに渡されていない場合、レポートを実行しようとするとエラーメッセージが表示されます。FILTERTOKENは、バックグラウンドレポート実行シナリオでは動作しない場合があります。
  • インラインSQLアクセスフィルターが有効な場合、一部のレポートフィルターオプションは利用できません。
  • この方法は、以下では使用できません。
    • サブセレクトまたはIN ステートメントのクエリーをサポートしていないデータソース
    • 非リレーショナルデータソース
    • ストアドプロシージャに基づくビュー


ビューへのアクセスフィルターの適用

データベース上で設定したアクセスフィルターは、そのソースに対して作成されるすべてのビューに適用することができます。

  1. ビューを作成し、ステップ2.ビューフィールドページで、作成した参照タイプの1つと一致するフィールドを選択します。
  2. アクセスタブを開き、アクセスフィルター項目から対応するタイプを選択します。フィルターレコードを持たない参照タイプを選択することはできません。
  3. アクセスフィルターを選択したら、フィールドを保存します。必要に応じて、複数のフィールドに、異なるアクセスフィルタータイプを適用することができます。
  4. ビュー上でフィールドにアクセスフィルタータイプを適用したら、ビューセキュリティページに移動します。このビューから作成するレポートに適用するアクセスフィルターのデフォルトを選択することができます。必要無い場合は、選択しなくても構いません。デフォルト設定でフィルターを適用した場合、このビューを使用して作成されるすべてのレポートに、対象のフィルターが適用されます。適切なアクセス権限を持つレポート作成者のみ、レポート単位でこのフィルターの変更をしたり、設定を解除したりすることができます。


レポートへのアクセスフィルターの適用

ドラッグ&ドロップビルダーを使用してレポート作成をする場合、選択したビューにアクセスフィルターが定義されていれば、レポートにそのフィルターを適用することができます。

レポートのデータページで、画面中央にあるレポートオプションボックスから、レポートデータ項目を開きます。アクセスフィルター項目には、選択したビューに適用されているすべてのフィルターが表示されます。

ここでフィルターを選択すると、ユーザーがレポートを実行するたびに、その結果が適用されます。

注意:適切なセキュリティアクセス権限を持つユーザーのみ、レポートに適用されたアクセスフィルターの設定を変更することができます。

注意:アクセスフィルターが適用されたレポートでは、スクリーンショットを取得することができません。


アクセスフィルターの上書き

こちらの設定は、管理者など、特定のユーザーがアクセスフィルターを上書きすることで、すべての結果を表示できるようにします。これは、上書きコードを定義し、特定のユーザーのソースフィルターエントリーに追加することで実現できます。これにより、Yellowfinは設定されたユーザーにアクセスフィルターを適用せず、すべての結果を提供します。

アクセスフィルターのOn/Off切り替えができるのは管理者ユーザーのみで、設定が適用されたユーザー自身は、自らこれを制御することはできません。

上書き機能の有効化

アクセスフィルターを上書きするコードを使用する前に、この機能を有効化する必要があります。これは、データベース内の構成テーブルに、以下のSQLクエリーを追加することで実行できます。

INSERT INTO Configuration VALUES (1,'SYSTEM','SOURCEFILTERWILDCARD','%');

上記の例で、「1」はプライマリー組織IDを、「%」が上書きコードを示します。コードを定義するために、任意の文字、または文字シークエンスでコード値を指定します。例:「no_filters

注意:こちらのクエリーを追加後、Yellowfinを再起動してこの機能を有効化します。