主菜单 上一节  |  下一节

维度成员和单元级别安全管理

SQL Server™ 2000 Analysis Services 中的安全性已经提高,支持单元级别安全和维度成员安全。

为什么?

单元级别安全和维度成员安全是互补的,向您提供最大的灵活性,以便根据自己的商务操作模型来保护数据安全。这些方法可以混合使用,也可以单独使用。

不管定义该数据单元的维度成员具体情况如何,单元级别安全将对数据本身应用一种安全模型。这种安全机制是使用 MDX 语句针对一系列单元进行定义。

相反,维度成员安全模型适用于维度成员,而不考虑数据单元。它使您可以减少多维数据集空间的切片或启用多维数据集空间的整个切片。图形接口允许您选择是哪些维度的哪些成员的读取和/或写入访问受限。

 

方案:

您在“基本功能”节中已为 Sales 多维数据集创建了一个角色,为 HR 多维数据集创建了一个角色,并创建了一个能够访问 Marketing 多维数据集和 HR 多维数据集的 Management 角色。在本节中,将对这些角色授予或删除对部分多维数据集的访问权限。

1) 单元级别安全:在 HR 多维数据集中,将限制经理查看经理级别的工资。 

2)维度成员安全:在 Sales 多维数据集中,基于经理只想查看商店销售的假设,将限制经理查看单元销售。

如何定义单元级别安全

单元级别安全在多维数据集级别上定义(甚至对于在数据库级别上定义的角色也是如此)。

  1. 在 Analysis Manager 树窗格中,在“教程”数据库下展开“多维数据集”文件夹,右击“HR”多维数据集,然后单击“管理角色”命令。
  2. “多维数据集角色管理器”对话框出现,显示现有角色的列表。

    22a.gif  

  3. 在“多维数据集角色管理器”中,选择“Management”角色,然后单击“编辑”按钮。
  4. 在出现的“编辑多维数据集角色”对话框中,单击“单元”选项卡。
  5. 在“单元安全策略”框中选择“高级”。
  6. 在“高级单元安全”网格中的读取行中,单击“无限制”,然后选择“自定义”。
  7. 在读取行的“自定义设置”列中,单击展开按钮(“...”)。

    22b.gif

  8. “多维数据集单元安全性”对话框出现。在“描述”框中,输入“Salary at lowest level rights”。
  9. 然后在"MDX"框中输入“Measures.Currentmember.Name = "Salary Paid" AND Employee.Currentmember.Children.count=0”。单击“确定”按钮。

    23.gif

  10. 在“编辑多维数据集角色”对话框中单击“确定”按钮。
  11. 在“多维数据集角色管理器”中单击“关闭”。

 

如何定义维度成员级别安全

可以为每一个数据库或每一个多维数据集定义维度级别安全。

  1. 在 Analysis Manager 树窗格中,在“教程”数据库下展开“多维数据集”文件夹,右击“Sales”多维数据集,然后单击“管理角色”命令。
  2. 当“多维数据集角色管理器”对话框出现时,显示现有角色的列表。

    24.gif  

  3. 在“多维数据集角色管理器”中选择“Management”角色,然后单击“编辑”。
  4. 在出现的“编辑多维数据集角色”对话框中选择“维度”选项卡。
  5. 在“维度”框的“度量值”行中,单击“无限制”,然后选择“自定义”。
  6. 在“度量值”行的“自定义设置”列中(最后一列),单击展开按钮(“...”)。
  7. “自定义维度安全”对话框出现。在“可视度量值”框中清除“Unit Sales”框。单击“确定”按钮。

    26.gif

  8. 在“编辑多维数据集角色”窗口单击“确定”按钮。

 

如何测试安全角色

SQL Server 2000 Analysis Services 允许您对角色进行测试,而无须先断开,然后再以该角色用户重新连接。

  1. 在“多维数据集角色管理器”中单击“测试角色”。
  2. “多维数据集浏览器”出现。注意,在列的度量值中没有列出 Unit Sales 的度量值。

    27.gif  


  3. 关闭“多维数据集浏览器”。
  4. 在“多维数据集角色管理器”中单击“关闭”。

 

 

 

主菜单 上一节  |  下一节