「ユーザー」および「アクセス」データを SQL Server データベースから直接ロードして、ログに記録された実際の NT ユーザーと比較し、QlikView ファイルへのアクセスを許可することはできますか?
前もって感謝します。
「ユーザー」および「アクセス」データを SQL Server データベースから直接ロードして、ログに記録された実際の NT ユーザーと比較し、QlikView ファイルへのアクセスを許可することはできますか?
前もって感謝します。
あなたの質問は、展開に関してあまり詳細を指定していません。Qlikview Server、Qlikview Publisher を使用しており、アクセス ポイント経由でドキュメントにアクセスしていると仮定します。
ユーザーが Qlikview アプリケーションにアクセスできるようにするためと、(DMS モードではなく) デフォルトの NTFS モードで実行するためには、実質的に 2 つのセキュリティ レイヤーが必要です。
ファイルのアクセス許可は、ドキュメントにアクセスできるユーザーを制御し、セクション アクセスは、各ユーザーがアプリケーション内で表示できるデータの行を制御します。セクション アクセスが Qlikview アプリケーション内に実装されていて、ユーザーがデータ行へのアクセスを許可されていない場合、ユーザーはアプリケーションを開くことができません。
セクション アクセスは必須ではなく、セキュリティ モデルでデータの行レベルのフィルタリングが必要な場合にのみ必要になります。ユーザーは、さまざまな方法で識別できます (AD グループまたはアカウント SID、Windows ログイン、Windows AD グループ名など)。
つまり、SQL Server データベース (または別のデータ ソース) からセキュリティ データをロードし、それを使用して Qlikview アプリケーション内にセキュリティを適用することができます。Section Access 機能については、QlikView Desktop オンライン ヘルプで詳しく説明されています。その他の唯一の考慮事項は、すべての適切なユーザーが、セクション アクセス データで指定されていることに加えて、ファイルにアクセスするためのファイル レベルのアクセス許可を持っていることを確認することです。
--- 質問の明確化後に追加された次の例 ---
通常、抽出スクリプトの一部として、最初にセクション アクセス データを QVD に保存します。
OLEDB CONNECT TO [Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=YOURDB;Data Source=YOURDBSERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False];
SectionAccessData:
LOAD
Upper(Trim(NetworkUserID)) AS [NTNAME]
//NTSID can be used in place of NTNAME if that's what you have stored in your data - but you should only use one or the other on a given row of data.
//,Upper(Trim(NTSID)) AS NTSID
,'USER' AS [ACCESS]
INLINE
[
NetworkUserID,SomethingToSecure
DOMAIN\graeme.smith,SOMEDATATOFILTER
];
STORE SectionAccessData INTO SectionAccessData.qvd (qvd);
次に、UI 要素を含む QVW のセクション アクセス テーブルにこのデータをロードできます。
SECTION ACCESS;
LOAD
[ACCESS]
,[NTNAME]
//,NTSID
//This field will be joined to the data model to restrict the data that the user can see.
,[SomethingToSecure] AS [SomethingToSecure]
FROM
$(QvdDirectory)\SectionAccess.qvd (qvd)
WHERE
(1=1);
SECTION APPLICATION;
また、UI ドキュメントで次のドキュメント プロパティを修正する必要があります。
ドキュメントのプロパティ -> 開始タブ
インライン テーブルではなく SQL からデータをロードする必要がある場合:
これを置き換えます:
INLINE
[
NetworkUserID,SomethingToSecure
DOMAIN\graeme.smith,SOMEDATATOFILTER
];
これとともに:
SQL
SELECT
MyNetworkUserIDField as NetworkUserID,
MySomethingToSecure as SomethingToSecure
FROM MyDB.dbo.MyTable;