SQL Server:如何隐式拥有所有访问权限,并明确否定一些?

时间:2010-11-05 14:21:01

标签: sql-server sql-server-2005 security permissions sql-server-2000

我想拒绝为特定用户访问数据库中的某些对象;但是,默认情况下,我希望获得任何未明确拒绝的任何内容。

通常我会让用户成为db_owner角色的成员,以便为他们提供所有访问权限(这是因为默认情况下public滚动不具有所有访问权限。但是,如果我在特定表格上明确拒绝select权限,对于该特定用户,他们仍然拥有选择权限。

用户如何隐式拥有所有访问权限,除非明确被拒绝?

2 个答案:

答案 0 :(得分:1)

将每个人置于不像db_datareader这样的所有者的角色中。我认为您的问题是试图拒绝db_owner成员上的select。管理员也一样。

答案 1 :(得分:0)

没关系,这个问题不像我描述的那样。

  • 用户是db_owner固定角色
  • 的成员
  • 用户被拒绝 select访问表格
  • 用户仍然可以访问表数据

这是因为用户首先浏览视图,存储过程或函数。显然,如果您对表格进行别名,则可以绕过安全性。

SQL Server: How to implicitly have all access, and explicitly deny some?