动态维度安全

JNK*_*JNK 7 security sql-server ssas sql-server-2012 dimension

我在 SSAS 2012 中有一个大约有 30 个维度的多维数据集,其中一个是Company.

Company维度包含公司列表,多维数据集中有数百家公司。我们的安全模型要求用户只能Company看到分配给他们的那些值。

在我们的SQL Server环境中,我们控制通过一系列的功能,此访问JOIN中编VIEW秒。这些函数返回一个列出所有Company值的表,用于过滤结果。

例如:

CREATE VIEW dbo.FakeView
AS
SELECT d.*
FROM FunctionToGetAccess(SYSTEM_USER) f
INNER JOIN DataTable d
    ON d.CompanyID = f.CompanyID
Run Code Online (Sandbox Code Playgroud)

有没有办法将这个逻辑或类似的逻辑移植到 SSAS 中的维度级别安全性?

一些注意事项:

  • 立方体将在一夜之间重建
  • 安全性不必每小时更新一次,但应在整夜的多维数据集处理过程中重新处理
  • 我强烈希望不必将用户列表和允许的客户端具体化到表或维度中

小智 3

您需要克服顾忌,将用户列表和允许的客户端具体化到某个维度,然后对该维度应用安全性。如果您有企业版,您可以对用户隐藏维度。