gpt4 book ai didi

qlikview - 如何从 SQL Server DB 加载 NT 用户以授予对 Qlikview 文件的访问权限?

转载 作者:行者123 更新时间:2023-12-02 19:25:54 27 4
gpt4 key购买 nike

是否可以直接从 SQL Server 数据库加载“用户”和“访问”数据,以与实际记录的 NT 用户进行比较并授予对我的 QlikView 文件的访问权限?

提前谢谢您。

最佳答案

您的问题没有详细说明您的部署。我假设您正在使用 Qlikview Server、Qlikview Publisher,并且通过访问点访问文档。

为了让用户能够访问 Qlikview 应用程序,并且您在默认 NTFS 模式(不是 DMS 模式)下运行,实际上需要两层安全性。

  1. 文件权限
  2. 部分访问(行级安全性)

文件权限控制谁可以访问文档,部分访问权限控制每个用户可以在应用程序中看到哪些数据行。如果已在 Qlikview 应用程序中实现了部分访问,并且用户尚未被授予对任何数据行的访问权限,则他们将无法打开该应用程序。

部分访问权限不是强制性的,仅当您的安全模型需要对数据进行行级过滤时才需要。可以通过多种方式识别用户(AD 组或帐户 SID、Windows 登录、Windows AD 组名称等)。

简而言之,是的,您可以从 SQL Server 数据库(或其他数据源)加载安全数据,并使用它在 Qlikview 应用程序中应用安全性。 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 文档中的以下文档属性:

文档属性 -> 打开选项卡

  1. 根据检查的部分访问权限减少初始数据
  2. 严格排除检查
  3. 禁止二进制加载检查

如果您需要从 SQL 而不是内联表加载数据:

替换这个:

INLINE
[
NetworkUserID,SomethingToSecure
DOMAIN\graeme.smith,SOMEDATATOFILTER
];

这样:

SQL
SELECT
MyNetworkUserIDField as NetworkUserID,
MySomethingToSecure as SomethingToSecure
FROM MyDB.dbo.MyTable;

关于qlikview - 如何从 SQL Server DB 加载 NT 用户以授予对 Qlikview 文件的访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com