Sql-Server
TDE 恢復 DB 加密狀態
我一直在研究在我們的 SQL Server 2014 環境中使用 TDE 並且有幾個問題。我認為我對最初實施 TDE 的眾多“操作方法”有相當紮實的掌握。我沒有找到的一件事是,如果將數據庫還原到另一個實例,它會處於什麼狀態。
例如,我在一個實例上加密一個數據庫,然後在創建主密鑰和 TDE 證書後在實例 B 上使用以下命令將其還原到另一個:
/* Create key in master on second server */ USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' /* Re-create server certificate in master database by using the original server certificate backup file. The password must be the same as was used when the certificate backup was created. */ CREATE CERTIFICATE TDE_Dev_Cert WITH SUBJECT = 'TDE Certificate' FROM FILE = 'C:\certfile' WITH PRIVATE KEY (FILE = 'C:\privatekeyfile' DECRYPTION BY PASSWORD = 'password';
在實例 A 上使用 TDE 加密的數據庫恢復到實例 B 後,該數據庫是在該點完全解密並且不再使用 TDE,還是證書只是允許 TDE 繼續正常執行?證書上的加密/解密標誌讓我感到困惑。提前致謝。
將數據庫恢復到另一台伺服器不會導致數據未加密。但是,您確實需要:
…移動用於打開 DEK 的證書或非對稱密鑰。證書或非對稱密鑰必須安裝在目標伺服器的主數據庫中,以便 SQL Server 可以訪問數據庫文件。
您必須保留證書文件和私鑰文件的副本才能恢復證書。私鑰的密碼不必與數據庫主密鑰密碼相同。
以下連結為您提供詳細資訊:
https://msdn.microsoft.com/en-us/library/ff773063(v=sql.120).aspx
在恢復的數據庫上設置好所有內容後,您可以(當然)關閉 TDE 並讓伺服器最終解密數據庫,如果這是您的意圖。
關於從要從 SQL Server 2008 或 2008 R2 恢復到另一台伺服器的數據庫中刪除加密,有一個非常重要的注意事項:
(這對您來說可能無關緊要,具體取決於還原數據庫的來源。)