Sql-Server
無法恢復啟用 TDE 的數據庫備份
我正在嘗試恢復啟用了透明數據加密的數據庫備份。我已驗證備份文件中的證書指紋與中的 TDE 證書相同
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 不應允許刪除證書。