Sql-Server

TDE 恢復 DB 加密狀態

  • July 21, 2015

我一直在研究在我們的 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 恢復到另一台伺服器的數據庫中刪除加密,有一個非常重要的注意事項:

http://blogs.msdn.com/b/batuhanyildiz/archive/2012/10/16/how-to-enable-remove-transparent-data-encryption-tde.aspx

(這對您來說可能無關緊要,具體取決於還原數據庫的來源。)

引用自:https://dba.stackexchange.com/questions/107653