【问题标题】:Row Level Security (RLS) for a SSAS Tabular ModelSSAS 表格模型的行级安全性 (RLS)
【发布时间】:2022-02-22 04:23:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: ssas ssas-tabular row-level-security


    【解决方案1】:

    对您的请求最明显的解决方案是以精简模式(称为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,以便用户凭据可以双跳。

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 2021-05-19
      • 2020-10-25
      • 2021-03-31
      • 2017-05-02
      • 2017-04-23
      • 1970-01-01
      • 2020-12-16
      • 2013-02-03
      相关资源
      最近更新 更多