3

我有一个数据库,目前正在使用我的应用程序。我不想在我的应用程序CORE中更改任何东西。但我想加密DATAINFORMATION其中storedis storing在数据库中。如何加密SQL Server 2008数据库

SQL Server 2008(或2008 R2)应该有一个内部机制来加密和解密提供给应用程序的信息。

如何让它工作? (使用Triggers或其他任何需要对所有数据库,数字,字符串,布尔值,日期时间字段加密等

任何帮助appriciated

+0

@Ehsan这种情况是不同的:在我的情况下,DBA能够看到和使用*表工作,*但数据是加密的,就像密码字段,没有人可以理解他们的含义。 'DBA'也可以删除,添加或编辑任何结构''(不要忘记这些是DBA工作)''。我只是想加密表 – 2012-01-12 09:34:36

回答

3

如果你想单元级加密,你应该自己做wayes)如果你想加密数据库文件,你可以使用Transparent Data Encryption (TDE)

+0

+1中的信息来加密数据库文件,即使我不是这个意思。 – 2012-01-12 09:00:01

2

SQL 2008有TDE或,总数据库加密。这加密了整个数据库,并且对数据库的任何用户都是透明的。如何去了解它的详细信息可以在这两个微软文章中找到:

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

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

+0

+1在Express版本中不提供加密功能..? – shashwat 2013-06-27 17:07:10

+1

@shashwat使用非对称密钥/对称密钥/证书的列级别可以使用加密。您需要TDE来加密整个数据库,并且它在快速版上不可用。 – Louhike 2016-12-12 16:43:43

0

您可以替代,以期自己的真实表的INSERT INSTEAD OF添加和INSTEAD OF UPDATE触发器,创建几个用户定义的函数。您可能需要稍微修改您的应用程序。

取而代之的是,考虑在文件级别对模式保护使用加密。 DbDefence等工具可用于小型数据库的免费版本,适用于中型数据库,价格适中。

0

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

自由选项:将数据库文件放在加密分区上。 然而这对DBA当然不会有什么区别。他将能够选择未加密的数据库。

有类似微软TDE的廉价解决方案称为DbDefence(是的,我与该公司相关联的)

正如你可能知道,微软将在SQL Server 2016调用来实现新的加密功能“始终加密”。 DbDefence自2005版以来一直使用SQL Server的这种方法。它确实有效,您不需要在应用程序中更改任何内容。

0

透明数据加密(TDE)

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

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

可以使用相同的密钥来加密表中的所有列,而不管表中要加密的列数。数据库服务器主密钥为这些加密密钥提供加密,并存储在数据库的字典表中。

欲了解更多信息,请参阅链接 How to implement TDE encrytion on SQL Server

相关问题