我们有一个客户要求保护我们的应用程序所使用的数据库,甚至来自他们的本地管理员(审计人员只是给他们这个要求).
在其要求中,保护数据意味着Sql Server管理员无法读取,也不修改存储在表中的敏感数据.
我们可以使用Sql Server 2005中的加密功能,但这会干扰我们的第三方ORM,并且还有其他缺点,如索引等.
在Sql Server 2008中,我们可以使用TDE,但是我明白这个解决方案不能保护用户使用Sql Server管理员查询数据库的权限.
这个问题有什么最佳做法或已知的解决方案吗?
此问题可能与由主机提供程序托管的应用程序类似,并且您希望保护主机管理员的数据.
我们可以使用Sql Server 2005或2008.
解决方法
这在上个
few
weeks中已经被问到了很多.答案通常归结为:
(
a)如果您不控制应用程序,则注定要信任DBA
要么
b)如果您控制应用程序,您可以使用应用程序已知的密钥对所有内容进行加密,并在出路上解密.不过,这样做会伤害表现(也是很多),所以TDE存在.防止篡改的一个变体是使用列中的值的加密散列,在应用程序访问时对其进行检查.
)
和
c)做广泛的审计,所以你可以控制你的管理员在做什么.