SQL Server 安全加密篇(二)->> 透明数据加密(TDE)

透明数据加密(TDE)加密 SQL Server的数据和日志文件,而且是页面级别的加密,数据库页在写入磁盘之前会进行加密,在读入内存时会进行解密。 TDE 不会增加已加密数据库的大小。

TDE 对数据和日志文件进行实时 I/O 加密和解密。 加密使用的是数据库加密密钥 (DEK)。 数据库启动记录存储该密钥,供还原时使用。 DEK 是一种对称密钥。 它由服务器的 master 数据库存储的证书或 EKM 模块所保护的非对称密钥提供保护。

启用了透明数据加密(TDE),数据库的还原和附加都需要用到证书和私钥。即便禁用了 TDE,事务日志的某些部分可能还是加密状态,在执行下一次执行完整数据库备份之前,可能还需要用到证书。

 

下图是MSDN上解释TDE的加密层次结构

 

 

 

 

 启用TDE的步骤

  1. 创建主密钥。

  2. 创建或获取由主密钥保护的证书。

  3. 创建数据库加密密钥并使用此证书保护该密钥。

  4. 将数据库设置为使用加密。

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_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO

 

参考:

透明数据加密 (TDE)

CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

ALTER DATABASE SET 选项 (Transact-SQL)

sys.dm_database_encryption_keys (Transact-SQL)

sys.certificates (Transact-SQL)

posted @ 2022-06-04 15:15  Jerry_Chen  阅读(1041)  评论(0编辑  收藏  举报