Sql-Server

無法恢復啟用 TDE 的數據庫備份

  • February 22, 2022

我正在嘗試恢復啟用了透明數據加密的數據庫備份。我已驗證備份文件中的證書指紋與中的 TDE 證書相同

$$ master $$數據庫。 TDET指紋

TDE證書:

在此處輸入圖像描述

但是,恢復失敗並出現以下錯誤:

在此處輸入圖像描述

它正在請求舊證書。請注意,我們前段時間更改了 TDE 證書,並且使用 alter database 命令使用新證書對數據庫主密鑰進行了加密:

USE [db];
GO
ALTER DATABASE ENCRYPTION KEY
ENCRYPTION BY SERVER CERTIFICATE [New_Certificate];
GO

舊證書還在

$$ master $$備份時的數據庫,並在一段時間後將其刪除。 這看起來像一個錯誤。

任何解釋,建議?

版本:Microsoft SQL Server 2016 (SP3-OD) (KB5006943) - 13.0.6404.1 (X64)

$$ EDIT1 $$:

我從備份中恢復了“舊”證書,並且數據庫恢復成功。檢查加密狀態 - 數據庫按預期受到“新”證書的保護,我刪除了“舊”證書: 在此處輸入圖像描述

但隨後數據庫備份出現相同的錯誤- 再次要求“舊”證書:

在此處輸入圖像描述

$$ EDIT2 $$:

我解密了數據庫並重新加密。僅在第二次嘗試時解密成功:

在此處輸入圖像描述

看起來問題是由一些使用“舊”和丟棄的證書加密的事務日誌記錄引起的。在解密重新加密的數據庫之前,我無法截斷事務日誌。我認為這是一個錯誤,因為如果仍然在任何地方使用,SQL Server 不應允許刪除證書。

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