2012-03-18 70 views
2

我一直在为我的客户端创建一个ASP.net Web应用程序。这将在其组织中进行托管(此要求是强制性的)。他们的要求之一是保护数据库中的数据,以便他们的内部管理员和DBA在他们进入服务器或获取数据库备份时无法看到数据。在SQL Server 2008数据库中保护数据的最佳做法

我使用LINQ到SQL和ADO.NET来查询数据库。

什么被认为是确保包含在数据库中的数据的最佳做法?

我正在考虑的一个选项是在业务层和应用程序中的数据访问层之间添加一个加密/解密层,以处理数据保护。

我担心这种做法会降低数据库的性能和应用性能。

欢迎任何想法或建议。

PS。这将是快速和容易实现将是一种选择更好;-)

回答

1

Assumming您使用的是Windows 2008或Windows 2008 R2(或Vista或Windows 7)。

不加密的数据库中的数据,它会降低性能(以蜗牛速度的点),你会失去很多的数据库功能。使用BitLocker或EFS

加密(使用EFS则可以只加密数据库文件,并且更易于安装和维护;不要忘记备份加密证书)。

EFS:

允许使用Windows备份管理员只备份(WBADMIN带命令行应该是足够的,并且可以提供太)。我建议备份整卷。

这些备份管理员将使用SEPARATE凭据登录该计算机,而不是运行SQL Server 2008的凭据,并且他们不得访问加密密钥和/或不得安装它们。

备份管理员将能够按原样备份加密文件,但永远无法访问它们,因为Windows备份使用VHD作为备份格式(并且文件仍在NTFS卷上,并使用这些机密证书加密)。

不要忘了不授予他们的权限登录到数据库,只是读/转储数据。 测试此设置并执行恢复(如果您未准备好,加密数据很容易丢失)。

+0

同时,检查了Bitlocker的。 – 2016-03-24 13:13:08

相关问题