如果我有三个不同职业的用户(经理,推销员,会计)
主要问题是如何根据SQL Server中的星型模式和要求向右侧人员显示右栏?
事实和暗淡在数据集市内使用常规表。
背景资料:
在Windows中,他们拥有自己的用户帐户。
图片来自地址(Design of a data warehouse with more than one fact tables)
答案 0 :(得分:2)
SQL Server确实能够分配列权限(http://msdn.microsoft.com/en-us/library/ms180341%28v=sql.105%29.aspx)。您可以根据需要设置特定权限,方法是将每个列视为具有自身安全性的对象。
管理列级安全性可能很麻烦,因为每次表更改和添加新用户时都必须记住更新安全性。
您考虑采用不同的方法。为每个不同的组定义单独的视图。只有经理可以访问“经理”视图;只有销售人员(或许经理)可以访问销售员视图等等。然后根据这些视图为每个组构建应用程序。
最后,管理多个视图可能有点麻烦。相反,您还可以使用表值函数将所有视图包装到单个函数中。该函数将检查每个用户的权限,并选择要返回的相应数据。
用户定义函数的优点是只有创建函数的用户才需要访问基础表。也就是说,用户只拥有该功能的权限;否则,他们无法看到基础表。该功能将控制他们可以看到的内容。