选择权限已在SQL Server中撤消,但用户仍可以访问所有表

时间:2019-04-12 17:07:44

标签: sql-server permissions

我已经撤消了SQL Server中某个用户的选择权限,并授予他们访问一个表的权限,但是该用户仍然可以查询所有表。

REVOKE SELECT ON "dbo"."TableName" FROM "Domain\user.name"

我要仔细检查两次登录名和用户的所有权限。有人可以引导我朝正确的方向前进吗?

1 个答案:

答案 0 :(得分:1)

要确定某人在SQL中可能拥有的所有权限,您必须查看:

  • 为其域登录配置的SQL登录。它是任何服务器级别组的成员吗?它具有服务器级别的权限吗?
  • 它可以访问哪些数据库?
  • 在那些数据库中,它具有什么权限?

我猜你已经做到了。下一级:

  • 标识已为其创建SQL登录名的所有域组。
  • 确定您的用户是哪个组的成员。进行与上述相同的检查,例如该组的成员可以在此SQL实例中做什么?
  • 请注意,域组可以包含域组。根据您对域管理员的控制(或控制)的方式,可能会出现疯狂的嵌套级别。这位于“域”活动目录中,您可能具有或没有足够的访问权限来进行详细查看。
  • 不要忘记本地(该计算机)组,这些组通常是默认设置的。用户是否是权限提升的本地计算机组的成员?在域级别您将一无所获。

当然,这是假定他们仅使用自己的个人域登录名,而没有别名,“运行身份”,SQL身份验证登录名,应用程序登录名,以及一些我现在无法想到的甚至更晦涩的东西。 (他们可能不是,除非他们在哀悼你。)

请注意,这不在我的脑海中。配置SQL安全性是一门绝技。找出配置了谁的噩梦(处理系统帐户上运行的应用程序时更糟)。