セキュリティ

QlikView におけるセキュリティのメカニズムは、2 つの異なる方法で設定できます。 QlikView ドキュメントのロード スクリプトに組み込むか、QlikView Publisher を使用して設定します。

認証と承認

認証は、承認を求めている人が本人であることを検証するためのプロセスです。QlikView では、Windows オペレーティング システムに認証を任せるか、ユーザー ID とパスワード (Windows のユーザー ID とパスワードとは異なるもの) を要求するか、QlikView ライセンス キーを簡単な認証方法として使用することができます。

承認は、識別された人がリソースを持つことを許可されているかどうかを判断することです。QlikView は、Windows オペレーティング システムに承認を任せるか、自身で承認を行うことができます。後者の場合は、セキュリティ テーブルをロード スクリプトに組み込む必要があります。

QlikView Publisher によるセキュリティ

QlikView Publisher でセキュリティを処理するように設定すると、各 QlikView ファイルがいくつかのファイルに分割され、関連ユーザーまたはユーザー グループに関するデータが各ファイルに格納されます。これらのファイルは、正しい OS セキュリティ設定を含むフォルダに格納されます。つまり、QlikView はオペレーティング システムに認証と承認を処理させます。

ただし、ファイル自体に組み込まれたセキュリティがないので、ダウンロードしたファイルは保護されません。

1 つのファイルがいくつかに分割され、ユーザーは自分のデータを含むファイルを開くだけなので、通常はファイル サイズが小さくなります。ただし、これにより、同じデータを含む複数のファイルがロードされることがあるので、1 つのファイルにすべてのデータを保持する場合に比べて、QlikView Server が使用するメモリが増える可能性もあります。

詳細については、QlikView Publisher のドキュメントを参照してください。

QlikView ロード スクリプトのセクション アクセスによるセキュリティ

QlikView ロード スクリプトのセクション アクセスでセキュリティを処理するように設定すると、1 つのファイルで多数のユーザーやユーザー グループのデータを保持できます。QlikView は、セクション アクセス内の情報を使用することにより、認証と承認を行い、ユーザーが自分のデータのみにアクセスするようにデータを動的に削減します。

ファイル自体にセキュリティが組み込まれるので、ダウンロードしたファイルもある程度まで保護されます。ただし、セキュリティの必要性が高い場合は、ファイルのダウンロードとオフライン使用を禁止する必要があります。ファイルは、QlikView Server でのみ公開する必要があります。

1 つのファイルにすべてのデータが保持されるので、このファイルはサイズが非常に大きくなる可能性があります。

QlikViewドキュメントは、オフライン モードで非表示にすることができます。オフラインのユーザー ドキュメントを非表示にするには、QMCを使用して、ユーザー ドキュメントのドキュメント情報セクションで、次の属性を追加します。

  • 名前:Invisible
  • 値:True

この後のすべての情報は、QlikView ロード スクリプトのセクション アクセスによるセキュリティ方法に関連します。

ロード スクリプトのセクション

アクセス制御は、QlikView による通常のデータのロード方法と同様にロードされる 1 つまたはいくつかのセキュリティ テーブルを使用して管理されます。このため、これらのテーブルは通常のデータベースに格納できます。セキュリティ テーブルを管理するスクリプト ステートメントは、スクリプト内の section access で開始されるアクセス セクション内に指定します。

ロード スクリプトにアクセス セクションを定義する場合は、"通常の" データをロードする部分のスクリプトを section application で開始される別のセクション内に配置する必要があります。

例:  

Section Access;

Load * inline

[ACCESS,USERID,PASSWORD

ADMIN, A,X

USER,U,Y ];

Section Application;

Load... ... from... ...

セクション アクセスのアクセス レベル

指定したユーザーまたはユーザーのグループに対して、QlikView ドキュメントへのアクセスを承認できます。セキュリティ テーブルでは、アクセス レベルの ADMIN または USER をユーザーに割り当てることができます。アクセス レベルが割り当てられていないユーザーは、QlikView ドキュメントを開くことができません。

管理者 ("ADMIN") アクセス権限を持つ人は、ドキュメントのすべての項目を変更できます。管理者アクセス権限 ("ADMIN") を与えられた人は、[ドキュメント プロパティ] ダイアログと [シート プロパティ] ダイアログの [セキュリティ] ページを使用して、ユーザーがドキュメントを変更する可能性を制限できます。ユーザー権限 ("USER") を与えられた人は、[セキュリティ] ページにアクセスできません。

注: 管理者アクセス権 (ADMIN) はローカル ドキュメントにのみ当てはまります。サーバー上で開かれたドキュメントには、常にユーザー権限 (USER) でアクセスされます。

セクション アクセスのシステム項目

アクセス レベルは、セクション アクセス内にロードされた 1 つまたは複数のテーブルに含まれるユーザーに割り当てられます。これらのテーブルには、さまざまなユーザー固有のシステム項目を含めることができます。通常は、"USERID" と "PASSWORD"、およびアクセス レベルを定義する項目の "ACCESS" です。セクション アクセス のすべてのシステム項目が認証と承認に使用されます。section access のすべてのシステム項目を以下に説明します。

セキュリティ項目は、すべてまたは任意の組み合わせをアクセス セクションにロードできます。また、何もロードしないことも可能です。このため、"USERID" を使用する必要がありません。シリアル番号のみなど、他の項目を使用して承認を行うことができます。

 

ACCESS 対応するユーザーに与えられるアクセス権限を定義する項目。
USERID 許可されるユーザー ID を含む項目。QlikView がユーザー ID の入力を要求し、この項目の値と比較します。このユーザー ID は、Windows のユーザー ID と同じではありません。
PASSWORD 許可されるパスワードを含む項目。QlikView がパスワードの入力を要求し、この項目の値と比較します。このパスワードは、Windows のパスワードと同じではありません。
SERIAL QlikView のシリアル番号に対応する番号を含む項目。
例:4900 2394 7113 7304。
QlikView がユーザーのシリアル番号を確認し、それをこの項目の値と比較します。
NTNAME Windows NT のドメイン ユーザー名またはグループ名に対応する文字列を含む項目。
QlikView が OS からログオン情報を取得し、それをこの項目の値と比較します。
NTDOMAINSID Windows NT ドメインの SID に対応する文字列を含む項目。
例:S-1-5-21-125976590-4672381061092489882。
QlikView が OS からログオン情報を取得し、それをこの項目の値と比較します。
NTSID Windows NT の SID を含む項目。
例:S-15-21-125976590-467238106-1092489882-1378。
QlikView が OS からログオン情報を取得し、それをこの項目の値と比較します。
OMIT

この特定のユーザーに対して省略する項目を含む項目。ワイルドカードを使用したり、項目を空にしたりすることもできます。これを手軽に行うには、サブフィールドを使用します。

注: 基盤のデータ構造が変更されてしまうため、キー項目には OMIT を適用しないでください。適用すると、論理の孤立化や計算の矛盾が生じる可能性があります。

QlikView は、QlikView のシリアル番号を SERIAL 項目と、Windows NT ユーザー名およびグループを NTNAME と、Windows NT ドメインの SID を NTDOMAINSID と、Windows NT の SID を NTSID と比較します。さらに、ユーザー ID とパスワードの入力を要求し、それらを USERID および PASSWORD 項目と比較します。

ユーザー ID、パスワード、および環境プロパティの見つかった組み合わせが section access テーブルでも見つかると、対応するアクセス レベルでドキュメントが開きます。見つからない場合、QlikView はドキュメントへのユーザー アクセスを拒否します。ユーザー ID やパスワードが正しく入力されない場合は、ログオン手順全体を繰り返す必要があります。

QlikView の特徴である同じ内部ロジックがアクセス セクションでも使用されているので、セキュリティ項目をさまざまなテーブルに配置できます。このため、システム管理者はセキュリティ テーブルから QlikView ドキュメントを作成できます。この場合は、対応する項目値をクリックすることで、正しいシリアル番号、パスワードなどがシミュレートされます。)

ログオン手順では、QlikView は最初に SERIAL、NTNAME、NTDOMAINSIDNTSID をチェックして、この情報がドキュメントへのユーザー アクセスを許可するために十分であるかどうかを確認します。十分である場合、QlikView はユーザー ID とパスワードの入力を要求せずに、ドキュメントを開きます。

アクセス項目の一部のみがロードされる場合は、上の要件のうちの対応する部分が使用されます。

section access 内の Load または Select ステートメントにリストされるすべての項目は、大文字で記述する必要があります。データベース内の小文字を含む項目名は、Load または Select ステートメントで読み取られる前に、upper 関数を使用して大文字に変換する必要があります。

参照項目: Upper - スクリプトおよびチャート関数

ただし、QlikView ドキュメントを開くエンド ユーザーが入力するユーザー ID とパスワードは、大文字と小文字が区別されません。

ワイルドカード (*) は、この項目に含まれるすべての値 (リストされている値)、つまりテーブル内のその他の場所にリストされている値として解釈されます。ロード スクリプトのアクセス セクションでロードされたテーブルのシステム項目 (USERID、PASSWORD、NTNAME、または SERIAL) の 1 つで使用される場合は、この項目のすべての絞込値 (リストされていない値も含む) として解釈されます。

注: QVD ファイルからデータをロードする際に Upper 関数を使用すると、ロード速度が低下します。
注: inline ステートメントでアクセス テーブルを生成するには、[アクセス制限テーブル ウィザード] を使用します。
注: セクション アクセスを有効にした場合は、ここにリストされたセクション アクセスのシステム項目名をデータ モデルの項目名として使用できなくなります。

例1:  

シリアル番号のみがチェックされます。特定の 1 台のコンピュータに管理者アクセス権限が与えられます。それ以外のすべてにユーザー アクセス権限が与えられます。このとき、スターを使用して "任意のシリアル番号" を示すことができます。

ACCESS SERIAL
ADMIN 4900 2394 7113 7304
ユーザー *

例2:  

管理者と、QlikView がバッチ ジョブとして実行されているサーバーに、管理者アクセス権が与えられます。ドメインのその他の人は、ユーザー ID とパスワードとして "USER" と入力することにより、ユーザー アクセス権が与えられます。

ACCESS SERIAL NTDOMAINSID USERID PASSWORD
ADMIN * S-1-5-21-125976590-467238106-1092489882 ADMIN ADMIN
ADMIN 4900 2394 7113 7304 * * *
ユーザー * S-1-5-21-125976590-467238106-1092489882 ユーザー ユーザー

QlikView 機能の制限

ドキュメント プロパティ:[セキュリティ] ページと シート プロパティ:[セキュリティ] ページにあるコントロールを使用すると、特定のメニュー項目へのアクセスを拒否したり、レイアウトの変更を禁止したりすることができます。これらの設定を本格的な保護の手段として使用する場合は、ドキュメント ユーザーがユーザーとしてログインすることが重要です。管理者としてログインした人は、いつでもセキュリティ設定を変更できます。

ユーザー権限でドキュメントを開いたユーザーには、[プロパティ] ダイアログの [セキュリティ] ページが表示されません。

動的データ削除

QlikView と QlikView Server は、section access ログインに基づいてドキュメントの一部のデータをユーザーに表示しない機能をサポートします。

第 1 に、システム項目の OMIT を使用して項目 (列) を非表示にできます。

第 2 に、Section Access のデータを実際のデータにリンクして、レコード (行) を非表示にできます。表示/除外する値の選択は、1 つ以上の項目に section accesssection application で共通の名前を付けて制御します。ユーザー ログイン後、QlikView は、section access での項目内の選択を section application の完全に同じ名前 (項目名は大文字で記述) の項目にコピーしようとします。選択が行われると、QlikView は選択によって除外されたすべてのデータをユーザーに表示しなくなります。

この処理が行われるには、ドキュメント プロパティ:起動画面 ページで セクション アクセスによる初期データ削除 オプションを選択する必要があります。QlikView Server を使用する以外の方法で配布されるドキュメントでこの機能を使用する場合は、[ドキュメント プロパティ] の同じページでバイナリ ロード禁止オプションを選択して、データ保護を維持する必要があります。

注: section access では、すべての項目名と項目値がデフォルトで大文字に変換されるので、上で説明した転送で使用するすべての項目名とそれらの項目のすべての項目値を大文字にする必要があります。

例:  

section access;

load * inline [

ACCESS, USERID,REDUCTION, OMIT

ADMIN, ADMIN,*,

USER, A,1

USER, B, 2,NUM

USER, C, 3, ALPHA

];

section application;

T1:

load *,

NUM AS REDUCTION;

load

Chr( RecNo()+ord(‘A’)-1) AS ALPHA,

RechNo() AS NUM

AUTOGENERATE 3;

現在、項目 REDUCTION (大文字) が section accesssection application の両方にあります (全ての項目値も大文字)。通常、2 つの項目はまったく異なり、区別されますが、[セクション アクセスによる初期データ削除] オプションを選択した場合、それらはリンクされ、ユーザーに表示されるレコード数は減少します。

section access の項目 OMIT で、ユーザーから隠すべき項目を定義します。

結果は次のようになります。

User A は、すべての項目と REDUCTION=1 に接続されたレコードを見ることができます。

User B は、NUM 以外のすべての項目と REDUCTION=2 に接続されたレコードを見ることができます。

User C は、ALPHA 以外のすべての項目と REDUCTION=3 に接続されたレコードを見ることができます。

アクセス制限の継承

バイナリ ロードを使用すると、新しい QlikView ドキュメントによってアクセス制限が継承されます。この新しいドキュメントへの管理者権限を持つ人は、新しい access section を追加して、この新しいドキュメントのアクセス権を変更できます。ユーザー権限を与えられた人は、スクリプトを実行したり、スクリプトを変更できるので、バイナリ ロードされたファイルに独自のデータを追加できます。しかし、アクセス権を変更することはできません。これにより、データベース管理者はバイナリ ロードされた QlikView ドキュメントに対してもユーザー アクセスを制御できます。

暗号化

QlikView Server と QlikView Windows クライアントの間の通信は暗号化されます。ただし、AJAX クライアントを使用する場合、通信は暗号化されません。

さらに、すべての QlikView ドキュメントが暗号化されるので、ビューアー、デバッガなどで情報を読み取ることはできません。