SSAS:使用当前用户对 SQL 数据库进行 DirectQuery

Posted

技术标签:

【中文标题】SSAS:使用当前用户对 SQL 数据库进行 DirectQuery【英文标题】:SSAS: DirectQuery to SQL database using the current user 【发布时间】:2021-06-16 10:51:43 【问题描述】:

我想在我的 SQL Server 数据库中定义所有访问权限,这样它既好又集中。我正在实现基本的东西,比如对模式和表的授权选择、列和 RLS 的加密。 在数据库之上,我使用 SSAS 和 DirectQuery 连接构建了一个表格模型。 在表格模型之上,我想使用 DirectQuery 连接构建报表。

directQuery 声明: 后端源数据库可以通过使用数据库中的行级安全功能来实施安全性。

Impersonation in Analysis Service Tabular 状态: 模拟当前用户 指定应使用发送请求的用户的身份从数据源访问数据。此设置仅适用于 DirectQuery 模式。

问题:

我无法在我的 ssas 表格模型中选择“使用当前用户”作为模拟模式。 ->“ssas 数据源包含处理操作不支持的模拟模式” changing the impersonation mode in ssms yields this error, VS2019 looks similar with the same content 我可以将其部署为特定用户,但这意味着每个人都使用该指定用户的访问权限。

我的表格模型使用兼容级别 1400。它部署到 Microsoft Analysis Server 15.0.32.50,表格模式。 (由于某种神秘的原因,该模型在兼容性 1500 时无法使用 DirectQuery。除非绝对必要,否则请不要将此作为主题。) SQL Server 版本为 2019, 15.0.2000.5 必须使用本地报表服务器。 SSAS、数据库和报表服务器在同一个 SQL Server 上运行。

是否可以在同一台机器上使用数据库、ssas 和报表服务器来实现此解决方案?如果有,怎么做?

【问题讨论】:

【参考方案1】:

好的,所以在搞砸这些东西太久之后,我将其范围缩小到 SQL-Server 设置。配置中的某些东西导致了很多问题。

上述方式使用直接查询传递用户信息是完全有效的。

【讨论】:

以上是关于SSAS:使用当前用户对 SQL 数据库进行 DirectQuery的主要内容,如果未能解决你的问题,请参考以下文章

SSAS(分析服务)优化手册

SQL SSAS - 部署错误

Excel 中的 SSAS 过滤器测量

SSAS Cube 中的维度级别安全性/每用户数据安全性?

不同 ID 上的 SSAS 聚合

使用 ADOMD.Net 从 SSAS 获取翻译