【发布时间】: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的权限。他们有权在服务器上执行任何操作,无论是否设置了任何其他GRANT、DENY和REVOKE权限。就像@AaronBertrand 所说,如果您不希望人们访问他们不应该访问的数据,请不要让他们拥有sa访问权限。
标签: sql sql-server security permissions row-level-security