![](/img/trans.png)
[英]Error restoring SQL Server 2008 R2 database with TDE enabled to SQL Server 2014
[英]Restoring a TDE Encrypted Database Backup to a Different Server - SQL Server 2008
兩年前,我使用下面的代碼在SQL Server 2008中加密(TDE)數據庫
USE MASTER;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Strong Password'
GO
USE MASTER;
CREATE CERTIFICATE DB_CER WITH SUBJECT = 'DB Certificate'
GO
USE DB
GO
CREATE DATABASE ENCRYPTION KEY WITH
ALGORITHM = AES_256 ENCRYPTION BY
SERVER CERTIFICATE DB_CER ;
GO
USE DB
ALTER DATABASE DB
SET ENCRYPTION ON ;
GO
USE master;
GO
BACKUP CERTIFICATE DB_CER
TO FILE = 'c:\Backup\certificate_DB_Certificate.cer'
WITH PRIVATE KEY
(FILE = 'c:\Backup\certificate_DB_Key.pvk',
ENCRYPTION BY PASSWORD = 'Strong Password')
我對數據庫數據庫以及certificate_DB_Certificate.cer和certificate_DB_Key.pvk進行了完整備份,並將其保存到硬盤中。 兩年后,我使用另一台PC還原了MASTER KEY和CERTIFICATE,因此我可以還原備份文件
CREATE CERTIFICATE DB_CER
FROM FILE = 'D:\Backup\certificate_DB_Certificate.cer'
WITH PRIVATE KEY (FILE = 'D:\Backup\certificate_OCV_DB_Key.pvk',
DECRYPTION BY PASSWORD = 'Strong Password')
運行代碼后,我收到此消息
警告:您創建的證書已過期。
因此,我刪除了CERTIFICATE,並將Pc日期更改為2015 / Jun(創建CERTIFICATE的日期),然后使用成功完成的命令再次重新創建了證書,但是當我還原備份文件時,我收到了此消息
恢復數據庫“ DB”失敗。
(Microsoft.SqlServer.Management.RelationalEngineTasks)System.Data.SqlClient.SqlError:找不到指紋為'0xFC01AD2683E08A4C8CD6A0F037DC66A945FBA44D'的服務器證書。 (Microsoft.SqlServer.SmoExtended)
有什么建議么?
“證書過期”消息是警告,不是錯誤。 您仍然可以使用過期的證書。
刪除使用更改的日期創建的證書,然后使用正確的日期再次還原該證書。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.