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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章