我必须为安全性非常重要的大型应用程序构建几个表格模型。我想做的是重用多维数据集源中存在的行级安全性,并将其应用于多维数据集本身。
例如,如果我从架构的两个表构建表格模型,并且这两个表都启用了RLS,则我希望多维数据集考虑这种安全性,以便在我访问报告并以用户身份登录时,仅根据我拥有的权限查看汇总数据。
通过网络搜索,我发现了在多维数据集中实现RLS的方法,但是没有从源继承它的方法。但是,我还是该技术的新手,所以我更愿意在这里询问。谢谢
对于您的请求,最明显的解决方案是在精简模式(称为DirectQuery模式)下运行SSAS Tabular 。只要在Visual Studio的“现有连接”对话框中设置了ImpersonateCurrentUser,当用户查询SSAS模型时,SSAS就会依次在最终用户的凭据下向数据库发送一个或多个SQL查询。SQL数据库中的RLS将在这里发挥作用。
一个警告是,我只会在SSAS 2016中推荐DirectQuery。另一个警告是,与SSAS中的缓存模型相比,性能将变慢。因此,如果性能不可接受,请关闭DirectQuery并在SSAS中重新实现RLS。另外,DirectQuery当前使用零缓存结果,因此针对SQL的负载将完全不会转移到SSAS。最后,如果您使用的SQL Server与SSAS不在同一服务器上,则如果使用DirectQuery和ImpersonateCurrentUser,则可能必须设置Kerberos,以便用户凭据可以加倍跳转。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。