0

我是用于开发分析模型的 SSAS 技术的新手。我必须为安全性非常重要的大型应用程序构建几个表格模型。我想做的是重新使用多维数据集源中存在的行级安全性并将其应用于多维数据集本身。

例如,如果我从一个模式的两个表构建一个表格模型,并且这两个表启用了 RLS,我希望多维数据集考虑到这种安全性,这样当我访问报表并以用户身份登录时,我将仅根据我拥有的权限查看汇总数据。

通过网络搜索,我找到了在多维数据集中实现 RLS 的方法,但没有从源代码继承它。但同样,我是这项技术的新手,所以我更愿意在这里问。谢谢

4

1 回答 1

0

对您的请求最明显的解决方案是以精简模式(称为DirectQuery模式)运行 SSAS 表格。只要在 Visual Studio 的 Existing Connections 对话框中设置 ImpersonateCurrentUser,当用户查询 SSAS 模型时,SSAS 就会依次向最终用户凭据下的数据库发送一个或多个 SQL 查询。SQL 数据库中的 RLS 将在这里发挥作用。

一个警告是,我只会在 SSAS 2016 中而不是之前推荐 DirectQuery。另一个需要注意的是,与 SSAS 中的缓存模型相比,性能会很慢。因此,如果性能不可接受,则关闭 DirectQuery 并在 SSAS 中重新实现 RLS。此外,DirectQuery 目前使用零缓存结果,因此根本不会将针对 SQL 的负载卸载到 SSAS。最后,如果您使用 DirectQuery 和 ImpersonateCurrentUser,如果您的 SQL 服务器与 SSAS 不在同一台服务器上,您可能必须设置Kerberos,以便用户凭据可以双跳。

于 2017-03-31T11:15:12.900 回答