Database 向右用户显示右列

Database 向右用户显示右列,database,sql-server-2008-r2,business-intelligence,datamart,Database,Sql Server 2008 R2,Business Intelligence,Datamart,如果我有三个不同职业的用户(经理、推销员、会计) 主要的问题是如何在SQL server中基于星型模式和下面的要求向正确的人显示正确的列 事实和dim在数据集市内部使用常规表 背景资料: 经理有权查看factTransaction中的所有列 销售人员不允许查看TaxAmount、TotalAmount和ProductBusinessKey 会计附注允许查看产品数量、产品价格和地理全名 在windows中,用户有自己的用户帐户 照片取自地址() SQL Server确实能够分配列权限(http

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

主要的问题是如何在SQL server中基于星型模式和下面的要求向正确的人显示正确的列

事实和dim在数据集市内部使用常规表

背景资料:

  • 经理有权查看factTransaction中的所有列
  • 销售人员不允许查看TaxAmount、TotalAmount和ProductBusinessKey
  • 会计附注允许查看产品数量、产品价格和地理全名
在windows中,用户有自己的用户帐户

照片取自地址()


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

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

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

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

用户定义函数的优点是,只有创建函数的用户才需要访问底层表。即用户只对该功能有权限;否则,他们将无法看到基础表。该函数将控制他们所能看到的内容