2016-02-18 67 views
1

我通过这个链接:https://msdn.microsoft.com/en-us/library/bb934049(v=sql.110).aspx 就是这样,它只加密数据库,表里面的列呢。如何使用TDE(Transparent Data Encryption)加密表的列值SQL

我使用的语法

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请帮我出列进行加密。

回答

0

TDE是一种加密类型,用于加密数据库的数据和日志文件。如果有人管理你的备份文件,那么他们将无法解密它,除非存储在主数据库中的数据库加密密钥被称为DEK。即使您想恢复TDE加密数据库的备份,您也必须在目标数据库中拥有相同的DEK。启用TDE还会加密您的tempdb。

为了更清楚地了解,请参阅Microsoft的联机丛书,也可以使用TechNet中的以下内容。 Transparent Data Encryption (TDE)

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

+0

嗨,谢谢你的答复,一个小问题,如果我试图查看我的表中的数据将被加密或将显示为正常值。无论是插入表中... –

+0

表中的数据将显示为正常值。你会发现在桌面级别的数据没有什么不同。 – Im88

0

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

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