如何使用TDE(透明数据加密)来加密表SQL的列值

时间:2016-02-18 09:47:12

标签: sql encryption sql-server-2012 tde

我浏览了这个链接:https://msdn.microsoft.com/en-us/library/bb934049(v=sql.110).aspx 是这样,它只加密数据库,表中的列怎么样。

我使用了语法

    USE master;
    GO
     CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
     go
      CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
      go
       USE AdventureWorks2012;
       GO
        CREATE DATABASE ENCRYPTION KEY
        WITH ALGORITHM = AES_128
        ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
        GO
         ALTER DATABASE AdventureWorks2012
         SET ENCRYPTION ON;
         GO

但是我可以看到该列如何使用TDE加密列

我是TDE的新手,请帮助我。

2 个答案:

答案 0 :(得分:0)

TDE是一种加密类型,用于加密数据库的数据和日志文件。如果有人设法窃取您的备份文件,他们将无法在没有数据库加密密钥(称为存储在主数据库中的DEK)的情况下对其进行解密。即使您要还原TDE加密数据库的备份,也必须在目标数据库中具有相同的DEK。启用TDE还会加密tempdb。

要获得更清晰的理解,请参阅Microsoft的联机丛书,您也可以使用TechNet中的以下内容。 Transparent Data Encryption (TDE)

在启用任何系统之前,请务必阅读更多内容并了解其效果,优缺点。

答案 1 :(得分:0)

TDE是透明数据加密,即它不会影响连接用户和应用程序所感知的数据库。它的作用是在将数据保存到磁盘之前对其进行加密,并在将数据重新读回工作集时对其进行解密。

如果要对每列加密数据,可以查看名为Always Encrypted(仅适用于v2016及更新版本)的SQL Server功能或CryptDB(研究项目,仅适用于MySQL)或Prisma / DB等外部解决方案。它们提供每列加密,并且与TDE兼容。