SSAS 表格模型的行级别安全性 (RLS)



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

例如,如果我从架构的两个表生成表格模型,并且这两个表启用了 RLS,则我希望多维数据集考虑此安全性,以便在我访问报表并以用户身份登录时,我只能根据我拥有的权限查看聚合数据。

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

请求的最明显解决方案是在精简模式下运行 SSAS 表格(称为直接查询模式(。只要在 Visual Studio 的"现有连接"对话框中设置了"模拟当前用户",当用户查询 SSAS 模型时,SSAS 就会依次向最终用户凭据下的数据库发送一个或多个 SQL 查询。SQL 数据库中的 RLS 将在此处发挥作用。

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

最新更新