SQL Server admin:1个用户属于2个用户组权限冲突

时间:2015-01-27 19:52:49

标签: sql-server permissions

我有一个问题,一个用户属于SQL Server中的两个不同的用户组,我正在尝试管理服务器中的对象权限。

在我们的数据库中,有一个具有敏感权限的视图,只有某些人才能看到它,并且我们的大多数用户都在该组中进行管理。

如:Sales Group,Manager Group

理想情况下,我们只需要授予Manager Group权限,并拒绝所有其他用户的权限,

让我们说经理John在经理小组,但他也是销售小组,因为他是销售部门的经理。

我的理解是,如果2个不同用户组中的1个用户,如果您拒绝任何组的权限,即使用户已经授予了另一个用户的权限,他仍然无法看到该对象。

我如何克服这种情况?

谢谢!

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,我们找到了解决方案,

在数据库安全性下,我们可以创建数据库角色,在数据库角色中我们可以将单个表权限分配给不同的角色,然后我们将数据库角色分配给用户组。在这种情况下,例如

数据库中有3个表, 表A是具有凭证信息的表。只有经理才能看到 表B和C只是常规表。

创建数据库角色'普通访问'并授予表B和C的许可。 然后创建另一个数据库角色'凭证访问'并授予表A的许可。

在您的服务器级安全性中。所有用户组只应属于服务器角色级别的公共'公共'

并在“使用映射”中,选择数据库并仅选择您指定的数据库角色。

就我而言,分配数据库角色,'普通访问'和['凭证访问权限'到经理组。所以他将拥有ABC表的所有访问权限

销售小组只应具有“正常访问权限”和“正常访问权限”。所以它无法访问A表。

感谢