1

如果我有不同的职业不同的用户(业务经理,业务员,会计)显示右栏正确的用户

的主要问题是如何基于星型模式和SQL以下要求合适的人显示右列服务器?

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

背景资料:

  • 经理有权查看的所有列factTransaction
  • 的推销员看不准TAX​​AMOUNT,总金额和ProductBusinessKey。
  • 会计注意允许查看产品数量,产品价格和地理位置全名。

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

画面从(Design of a data warehouse with more than one fact tables

enter image description here

回答

2

SQL服务器不具备分配列权限的能力地址(http://msdn.microsoft.com/en-us/library/取ms180341%28V = SQL.105%29.aspx)。您可以根据自己的安全性将每个列视为对象来设置特定权限。

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

你考虑一种不同的方法。为每个不同的组定义一个单独的视图。只有经理才能访问“经理”视图;只有推销员(也许是经理)才能访问推销员视图等。然后根据这些视图为每个组构建应用程序。

最后,管理多个视图可能有点麻烦。相反,您也可以拥有一个将所有视图封装到一个函数中的表值函数。该功能将检查每个用户的权限并选择适当的数据返回。

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