如何加密SQL Server 2008数据库

时间:2012-01-12 08:27:43

标签: sql sql-server sql-server-2008 encryption sql-server-2008-r2

我有一个数据库,目前我的应用程序正在使用它。我不想在我的应用程序CORE中更改任何。但我想加密数据库中DATAINFORMATION的{​​{1}}和stored

is storing(或2008 R2)应该有一个内部机制来加密和解密给出并提交给应用程序的信息。

如何让它发挥作用?数据库,数字,字符串,布尔值,日期时间等所有字段都需要加密。

任何帮助都是适当的

5 个答案:

答案 0 :(得分:3)

如果你想要单元级加密你应该自己做(使用Triggers或任何其他方式)如果你想要加密数据库文件你可以使用Transparent Data Encryption (TDE)

答案 1 :(得分:2)

SQL 2008具有TDE或Total Database Encryption。这会加密整个数据库,对数据库的任何用户都是透明的。有关如何解决此问题的详细信息,请参阅以下两篇Microsoft文章:

http://msdn.microsoft.com/en-us/library/cc278098%28v=sql.100%29.aspx

http://msdn.microsoft.com/en-us/library/bb934049.aspx

答案 2 :(得分:0)

您可以使用VIEW替换INSTEAD OF INSERT和INSTEAD OF UPDATE触发器替换您的真实表,创建多个用户定义函数。您可能需要稍微修改您的应用程序。

而不是考虑使用模式保护在文件级别使用加密。 像DbDefence这样的工具可用于小型数据库的免费版本,也适用于中型数据库的非常适中的价格。

答案 3 :(得分:0)

如果您真的按字段加密所有内容,那么索引会失去优势,并且性能会大幅下降。

免费选项:将数据库文件放在加密分区上。 然而,这当然对DBA没有任何影响。他将能够选择未加密的数据库。

有一种类似于Microsoft TDE的廉价解决方案,名为DbDefence(是的,我与该公司有关)

正如您所知,Microsoft将在SQL Server 2016中实现名为" Always Encrypted"的新加密功能。自2005年以来,DbDefence一直在为SQL Server使用该方法。它非常有效,您无需在应用程序中更改任何内容。

答案 4 :(得分:0)

透明数据加密(TDE)

透明数据加密(TDE)是Microsoft和Oracle开发的用于加密数据库文件的技术。它提供文件级加密,并通过加密硬盘驱动器和备份介质上的数据库来保护静态数据。它不保护传输中的数据或正在使用的数据。

加密对访问数据库的应用程序完全透明。它使用高级加密标准或三重DES加密来加密数据库的数据文件(.mdf)和日志文件(.ldf)中的数据。

无论表中要加密的列数是多少,都可以使用相同的密钥加密表中的所有列。数据库服务器主密钥为这些加密密钥提供加密,并存储在数据库的字典表中。

有关详细信息,请参阅链接 How to implement TDE encrytion on SQL Server