0

微软 SQL 服务器 2016

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

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

REVOKE IMPERSONATE ON USER:: HeadOffice TO SA

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

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

非常感谢。

4

1 回答 1

0

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

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

谢谢你们的帮助。

于 2018-01-17T08:05:17.617 回答