向右用户显示右列

时间:2012-07-08 20:50:15

标签: database sql-server-2008-r2 business-intelligence datamart

如果我有三个不同职业的用户(经理,推销员,会计)

主要问题是如何根据SQL Server中的星型模式和要求向右侧人员显示右栏?

事实和暗淡在数据集市内使用常规表。

背景资料:

  • 管理员有权查看factTransaction中的所有列
  • 不允许销售员查看TaxAmount,TotalAmount和ProductBusinessKey。
  • 会计记录允许查看产品数量,ProductPrice和GeographyFullname。

在Windows中,他们拥有自己的用户帐户。

图片来自地址(Design of a data warehouse with more than one fact tables

enter image description here

1 个答案:

答案 0 :(得分:2)

SQL Server确实能够分配列权限(http://msdn.microsoft.com/en-us/library/ms180341%28v=sql.105%29.aspx)。您可以根据需要设置特定权限,方法是将每个列视为具有自身安全性的对象。

管理列级安全性可能很麻烦,因为每次表更改和添加新用户时都必须记住更新安全性。

您考虑采用不同的方法。为每个不同的组定义单独的视图。只有经理可以访问“经理”视图;只有销售人员(或许经理)可以访问销售员视图等等。然后根据这些视图为每个组构建应用程序。

最后,管理多个视图可能有点麻烦。相反,您还可以使用表值函数将所有视图包装到单个函数中。该函数将检查每个用户的权限,并选择要返回的相应数据。

用户定义函数的优点是只有创建函数的用户才需要访问基础表。也就是说,用户只拥有该功能的权限;否则,他们无法看到基础表。该功能将控制他们可以看到的内容。