Joh*_*ohn 2 database-design sql-server users
我们的组织聘请第三方公司对我们的数据库进行维护。老实说,目前他们充当我们的 DBA,因为我们没有 DBA。
为了进行维护工作,他们使用的是 SA 用户。
有没有办法让他们成为他们可以使用的新用户,在不实际查看数据的情况下执行所有管理操作。因此,他们可以看到所有表和列,但他们将无法看到任何行。
如果我遗漏了什么,请随时启发我,因为我的 DBA 知识相当贫乏。
系统管理员可以看到实例中的所有数据,并且无法限制系统管理员服务器角色成员的权限。
向系统管理员隐藏数据的唯一可能方法是使用服务器上不可用的密钥对其进行加密。这正是SQL Server 2016 中的Always Encrypted功能所做的。
在 SQL Server 2008 中,您的选择非常有限:您可以使用自定义加密层,但您必须自己编码。此外,与 Always Encrypted 中发生的情况不同,没有什么可以强制您要加密的列实际上只包含加密数据(应用程序必须处理这一点)。
也就是说,这不仅仅是一个技术问题:为您进行维护的公司是值得信赖的合作伙伴,因此您可以直接与他们交谈并要求不要查看数据。您还可以设置审计以捕获未经授权的读/写。然而,这是一个灰色区域:例如,如果他们正在解决性能问题,他们可能会运行一些查询并查看一些数据。
底线是:如果您不信任第三方,请不要让他们管理您的实例。