【问题标题】:revoke permission to execute as user on SA撤销在 SA 上以用户身份执行的权限
【发布时间】:2018-06-25 06:23:45
【问题描述】:

MS SQL-SERVER 2016

我目前正在对基于用户名进行限制的数据库使用行级安全性。这种安全性可以保护存储应用程序级别设置的表上的行 - 即,如果您购买了它,您可以看到它,如果您是总部,您可以看到所有内容。

我遇到的问题是,如果您以 SA 身份登录,一个简单的“EXECUTE AS USER”调用允许模拟总部帐户。有没有办法阻止 SA 冒充特定用户?即使它的密码受保护或类似。

REVOKE IMPERSONATE ON USER:: HeadOffice TO SA

不会工作。由于我们的客户自己托管 SQL,因此他们将始终拥有 SA 登录详细信息,并且任何拥有 SSMS 副本并稍微了解如何解决安全问题的人都可以轻松解决。通过模拟,甚至只是关闭安全策略。

我认为客户将拥有 SA 访问权限这一事实使这个想法无法启动,但我很想听听任何人对安全工作的任何建议。

非常感谢。

【问题讨论】:

  • 更改密码,让人们停止以sa 登录。
  • 您无法撤销对sysadmin 的权限。他们有权在服务器上执行任何操作,无论是否设置了任何其他 GRANTDENYREVOKE 权限。就像@AaronBertrand 所说,如果您不希望人们访问他们不应该访问的数据,请不要让他们拥有sa 访问权限。

标签: sql sql-server security permissions row-level-security


【解决方案1】:

看起来答案是我所期望的——你做不到。

我实际上最终使用的解决方案是在数据库之外 - 即数据库向网站提供信息。我将在 vb 服务中构建一个级别的系统检查。当客户端具有 sa 访问权限时,无法在数据库级别完成。

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-12
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    相关资源
    最近更新 更多