開啟TDE的RDS SQL Server還原到本地環境
問題引入
阿裏雲RDS SQL Server 2008 R2版本,客戶在前端控製台可以自行啟用透明數據加密(TDE),來避免客戶數據庫備份文件被非法盜取而引起拖庫風險。最近,客戶谘詢如何將開啟了TDE的數據庫還原到本地環境,這篇文章的目的就是為了解決這個問題。
前提條件
請仔細閱讀以下限製條件,缺一不可。
版本限製:僅針對RDS SQL Server 2008 R2版本。
啟用了TDE:客戶在前端控製台啟用了TDE並且任務已經完成(一旦啟用,無法再次關閉TDE)。
備份文件:下載的備份文件是啟用了TDE之後的備份文件。
證書相關文件:證書文件、證書秘鑰文件和證書加密密碼,三者缺一不可。請找阿裏雲索取這三個必要文件。
注意事項
SQL Server TDE技術可以有效防止拖庫的安全風險,但是它也是一把雙刃劍,在保證安全的同時也要付出一定的成本。在開啟TDE之前,請仔細衡量以下注意事項:
性能下降:開啟了TDE的數據庫會有一定的性能損失。到底有多大的性能損失,可以參見這篇文章SQL Server Transparent Data Encryption (TDE) Performance Comparison
TDE功能一旦啟用而無法再次關閉,沒有後悔藥,而由此導致的性能損失由客戶自己承擔責任。
目前僅RDS SQL Server 2008 R2提供TDE功能。
RDS上的測試表
為了測試開啟了TDE的RDS SQL Server實例如何還原到本地,我們先在RDS上創建測試環境:創建測試表,插入兩條數據。
use testtde
GO
create table dbo.testTDE(
id int identity(1,1) not null primary key
,name varchar(10)
);
insert into testTDE
select 'AA' union all select 'BB'
GO
select * from testtde.dbo.testTDE
還原到本地
還原證書之前
在還原證書之前,即使您拿到了阿裏雲RDS SQL Server的備份文件,你也無法查看和使用備份文件,因為你沒有證書文件相關文件。比如:查看備份文件列表,直接報錯:
USE master
GO
RESTORE FILELISTONLY
FROM DISK = 'C:\Temp\testtde.bak' ;
由此可見啟用了TDE的RDS SQL Server可以非常有效地防止拖庫行為。
詳細步驟
在證書還原之前,我們是無法使用備份文件的,達到了防止備份文件被偷窺的目的。以下是如何還原到本地環境的詳細步驟:創建Master Key;創建證書;還原數據庫。
USE master
GO
CREATE MASTER KEY
ENCRYPTION BY PASSWORD='MyMasterKey'
GO
---這裏需要特別強調,證書文件cer_tde.cer、證書秘鑰文件cer_tde.pvk和加密密碼,請找阿裏雲索取。
CREATE CERTIFICATE cer_tde
FROM FILE = 'C:\Temp\cer_tde.cer'
WITH PRIVATE KEY (FILE = 'C:\Temp\cer_tde.pvk',
DECRYPTION BY PASSWORD = 'tde_password')
GO
---還原證書後,再次讀取備份文件,這裏可以成功。參見截圖圖三
RESTORE FILELISTONLY
FROM DISK = 'C:\Temp\testtde.bak' ;
GO
---還原證書後,成功還原數據庫到本地。參見截圖圖四
RESTORE DATABASE TestTDE
FROM DISK = N'C:\Temp\testtde.bak'
WITH MOVE 'data1' TO 'C:\Temp\TestTDE.mdf',
MOVE 'log' TO 'C:\Temp\TestTDE_log.ldf';
GO
---檢查測試表數據。參見截圖圖五
SELECT * FROM TestTDE.dbo.testTDE;
參考文章
SQLServer · 最佳實踐 · 透明數據加密TDE在SQLServer的應用
最後更新:2017-04-01 17:04:39
上一篇:
程序員的常見“謊話”:對,這是一個已知 Bug
下一篇:
DT科技評論第32期:“電子紋身”可以控製智能設備
實戰DeviceIoControl 之五:列舉已安裝的存儲設備
Java自學能學會嗎?Java新手學習路線
采訪阿裏服務器專家鍾楊帆,看阿裏全浸沒式液冷集群有哪些黑科技
JavaWeb項目的中文亂碼的原因以及Servlet中處理GET請求和POST請求編碼過濾器
Android中自定義Activity和Dialog的位置大小背景和透明度等
《Linux From Scratch》第二部分:準備構建 第五章:構建臨時文件係統- 5.5. GCC-4.9.2 - 第一遍
世界頂級黑客大賽內情首次揭秘:有“連環計”,最後一刻把“韓國隊”拉下馬
對於棋牌類的網站,我們應該如何選擇服務器呢?
《程序員度量:改善軟件團隊的分析學》一案例分享:度量和懷疑論者
activty棧管理