日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

透明數(shù)據(jù)加密(TDE)庫的備份和還原

 看見就非常 2014-07-14

對于包含敏感數(shù)據(jù)的庫,要實(shí)現(xiàn)備份加密。即備份文件別人拿到也不能還原和查看其中的數(shù)據(jù)。想到TDE(Transparent Data Encryption)。

TDE MSDN 說明:

“透明數(shù)據(jù)加密”(TDE) 可對數(shù)據(jù)和日志文件執(zhí)行實(shí)時(shí) I/O 加密和解密。這種加密使用數(shù)據(jù)庫加密密鑰 (DEK),該密鑰存儲(chǔ)在數(shù)據(jù)庫引導(dǎo)記錄中以供恢復(fù)時(shí)使用。DEK 是使用存儲(chǔ)在服務(wù)器的 master 數(shù)據(jù)庫中的證書保護(hù)的對稱密鑰,或者是由 EKM 模塊保護(hù)的非對稱密鑰。TDE 保護(hù)“處于休眠狀態(tài)”的數(shù)據(jù),即數(shù)據(jù)和日志文件。它提供了遵從許多法律、法規(guī)和各個(gè)行業(yè)建立的準(zhǔn)則的能力。軟件開發(fā)人員籍此可以使用 AES 和 3DES 加密算法來加密數(shù)據(jù),且無需更改現(xiàn)有的應(yīng)用程序。

其實(shí)吸引我的是“無需更改現(xiàn)有的應(yīng)用程序”,因?yàn)槲倚枰用艿膸旆?wù)于一個(gè)非常穩(wěn)定的系統(tǒng),而且這樣做所有事情DBA可控。

TDE加密體系結(jié)構(gòu):

  untitled

測試過程:

 

--創(chuàng)建主密鑰(Master Key)
USE master
GO
--DROP MASTER KEY 
CREATE MASTER KEY ENCRYPTION BY PASSWORD=N'1qaz@WSX';
GO
--備份主密鑰
BACKUP MASTER KEY TO C:\master_key.cer'
ENCRYPTION BY PASSWORD=N'!QAZ2wsx'
GO 

--創(chuàng)建基于主密鑰的證書。用于保護(hù)數(shù)據(jù)庫加密密鑰(Database Encryption Key)
--DROP CERTIFICATE SDB_Cert
CREATE CERTIFICATE SDB_Cert
WITH SUBJECT=N'Certificate for SecretDB'
go
--使用私鑰加密的方式備份主密鑰的證書
BACKUP CERTIFICATE SDB_Cert
TO C:\SDB_Cert.cer'
WITH PRIVATE KEY
 (
  FILE =N'C:\SDB_Cert.pvk',
  ENCRYPTION BY PASSWORD='!QAZ2wsx'
 )
GO 

--創(chuàng)建測試庫SecretDB
USE master
GO 
CREATE DATABASE SecretDB
GO 
USE SecretDB
GO
CREATE TABLE SDB_TB
(ID INT,VAL NVARCHAR(20));
INSERT INTO SDB_TB
VALUES (1,N'A'),(2,N'B'),(3,N'C');
GO


USE SecretDB
go
--創(chuàng)建數(shù)據(jù)庫加密密鑰
CREATE DATABASE ENCRYPTION KEY 
WITH ALGORITHM=AES_128
ENCRYPTION BY SERVER CERTIFICATE SDB_Cert;
GO 

--啟用數(shù)據(jù)庫加密
USE SecretDB
go
ALTER DATABASE SecretDB SET ENCRYPTION ON
go

--備份SecretDB,用于后續(xù)的異機(jī)還原測試
USE master
go
BACKUP DATABASE SecretDB TO D:\SecretDB.bak'
go
 
在完成這些后,SecretDB庫已經(jīng)加密,并且得到其加密后的備份文件,接下來需要在另臺(tái)還原這個(gè)備份。
我把SecretDB.bak,SDB_Cert.cer,SDB_Cert.pvk拷到別一臺(tái)機(jī)。直接還原的話,會(huì)報(bào)錯(cuò)。需要?jiǎng)?chuàng)建原來用于加密的證書來還原數(shù)據(jù)庫備份。我的目的達(dá)到了!
--在異機(jī)上恢復(fù)SecretDB的備份
USE master
GO 
CREATE DATABASE SecretDB
GO
RESTORE DATABASE SecretDB
FROM D:\SecretDB.bak'
WITH REPLACE
GO
--消息 33111,級(jí)別 16,狀態(tài) 3,第 1 行
--找不到指紋為 '0x0106000000000009010000009C529FFD5C7FD72FD0AAE9EDF46C5F69946FFED0' 的服務(wù)器 證書。
--消息 3013,級(jí)別 16,狀態(tài) 1,第 1 行
--RESTORE DATABASE 正在異常終止。
 
創(chuàng)建證書并還原。
USE master
GO 
CREATE CERTIFICATE SDB_Cert
FROM C:\SDB_Cert.cer'
WITH PRIVATE KEY
( 
  C:\SDB_Cert.pvk',
  DECRYPTION BY PASSWORD=N'!QAZ2wsx'
)
GO
RESTORE DATABASE SecretDB
FROM D:\SecretDB.bak'
WITH REPLACE
GO
 
總結(jié):
 其實(shí)在做TDE前應(yīng)該仔細(xì)閱讀BOL的說明:ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.zh-CHS/s10de_4deptrbl/html/c75d0d4b-4008-4e71-9a9d-cee2a566bd3b.htm
 其中說到:
    如果使用 TDE 對數(shù)據(jù)庫進(jìn)行加密,備份壓縮將無法顯著壓縮備份存儲(chǔ)。
    復(fù)制不會(huì)以加密形式從啟用了 TDE 的數(shù)據(jù)庫中自動(dòng)復(fù)制數(shù)據(jù)。如果您想保護(hù)分發(fā)和訂閱服務(wù)器數(shù)據(jù)庫,則必須單獨(dú)啟用 TDE。
 某些限制和注意事項(xiàng),會(huì)影響TDE的部署和使用。
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多