2022/06/21
アドバンスド
このコンテンツでは、SpotfireのRow Level Security機能について説明していきます。
なお、本コンテンツで利用したバージョンはSpotfire10.10/11.4となります。ご利用環境によって、一部画面構成が異なる可能性があります。ご了承ください。
本コンテンツはRow Level Security(1)の続きになります。
Row Level Security機能を実現するには、2通りの方法があります。
(1)データ接続
(2)インフォメーションリンク
本コンテンツでは、(2)インフォメーションリンクでの方法について説明します。
前回と同様、下記のようなデータ(testtable)を利用して、自分が属しているグループのレコードだけをSpotfire側に渡します。
本コンテンツの仮想Spotfireユーザーは事業所グループ「groupB」に所属しているため、「groupB」のレコードだけをSpotfireに表示させるようにします。
インフォメーションリンクとはSpotfire Server機能の一つで、JDBC経由でデータベースからデータを取得する仕組みです。この機能を使うことで、管理者はデータベースへのアクセス情報を一元管理できる一方で、ユーザーはアクセス情報を入力せずにデータを取得できます。
インフォメーションリンクはSQL文に相当します。
カラムやフィルターなどの「要素」を作成し、定義した取得カラムや取得条件を組み合わせることで、「インフォメーションリンク」というデータベースへのアクセス情報(SQL文)を作成します。ユーザーは作成したインフォメーションリンクをデータソースとして利用できます。
インフォメーションリンクはインフォメーションデザイナーを利用して作成し、Spotfire Serverのライブラリに公開する必要があります。インフォメーションリンクの作成には、対象ユーザーに以下のライセンスを付与する必要があります。
ライセンスの付与はSpotfire管理者がAnalystにログインし、メニューバー「ツール」 > 「管理マネージャ…」 で行います。
ライセンスが付与されたユーザーにおいて、メニューバー「データ」 > 「インフォメーションデザイナー」を選択すると下記画面が開きます。こちらで、インフォメーションリンクの作成ができます。
まず、インフォメーションデザイナーダイアログにおける「データソースのセットアップ」でデータベースへの接続情報を設定します。
「データソース」タブが開かれるため、下記を入力して自身のデータベースへの接続設定を行います。
データソースへの接続情報を設定後、インフォメーションリンクを作成していきます。
下図のように、DBから取得するデータを制限するための「要素」をインフォメーションリンクの中で設定することで、データ制限を実現します。
今回データを制限するために利用する「要素」は下記の2つです。
まず、カラム要素を作成します。
「データソース」タブにて、対象データソースのツリーを展開し、対象データテーブルを選択します。
右クリックで「カラム要素の作成」を選択します。
すると「複数のカラム要素」タブが開きます。
「カラムの作成」をクリックして、カラム要素を保存するライブラリ内フォルダを指定します。
「要素」タブを確認すると、保存したフォルダに先ほどのカラム要素を確認できます。
データ制限をするフィルターエレメント(フィルター要素)を作成します。
「開始」タブで「フィルター」を選択します。
すると、「フィルター」タブが開きます。
データソースから使用するテーブルtesttableを選択し、カラム「事業所グループ」を追加します(下図①参照)。
ユーザーの所属するグループにより、閲覧できる事業所グループに制限をかけるため、下記の式を入力します(下図②参照)。
入力後、「名前を付けて保存」でライブラリ内に保存します。今回は「フィルター」と名付けて保存します(下図③参照)。
前準備として作成したカラム要素およびフィルターエレメントを利用して、インフォメーションリンクを作成します。
「開始」タブの「インフォメーションリンクの作成」をクリックします。
「インフォメーションリンク」タブが開かれます。
「要素」タブ内の先ほど作成したカラム要素とフィルターエレメントを選択し、「追加」を選択します(下図①参照)。
追加できたら「名前を付けて保存…」をクリックして、ライブラリ内に保存します。今回は「testtable」と名付けます(下図②参照)。
以上で、インフォメーションリンク「testtable」が作成できました。
試しに、作成したインフォメーションリンクを開きます。
+ボタン > Spotfireライブラリーを選択し、インフォメーションリンク「testtable」をダブルクリックで開きます。
「データを分析に追加」画面が出てくるため、そのまま「OK」をクリックします。
データを取得後、データテーブルを表示して確認します。
今回のSpotfireユーザーは「groupB」に所属しているため、「groupB」のレコードだけが表示されます。
実際に確認してみると、下図のように事業所グループが「groupB」のレコードのみが表示されています。
このように、前回の記事で試したデータ接続だけでなく、インフォメーションリンクでも、ユーザーごとに閲覧できるデータを制限できます。
次の記事
OVER関数の使い方【アドバンスド】最新の記事
%1 in (%CURRENT_GROUPS%)