Восстановление зашифрованной резервной копии базы данных TDE на другой сервер - SQL Server 2008

Два года назад я использовал приведенный ниже код для шифрования (TDE) базы данных в SQL Server 2008.

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 и сохранил ее на свой жесткий диск. Через два года я использовал другой компьютер для восстановления ГЛАВНОГО КЛЮЧА и СЕРТИФИКАТА, поэтому я могу восстановить файл резервной копии.

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')

После запуска кода я получил это сообщение

Предупреждение: срок действия созданного вами сертификата истек.

Итак, я удаляю СЕРТИФИКАТ и меняю дату ПК на 2015 / июнь (дата создания СЕРТИФИКАТА), затем я заново создаю сертификат с успешно выполненной командой, но когда я восстанавливаю файл резервной копии, я получил это сообщение

Не удалось восстановить базу данных «DB».
(Microsoft.SqlServer.Management.RelationalEngineTasks) System.Data.SqlClient.SqlError: не удается найти сертификат сервера с отпечатком «0xFC01AD2683E08A4C8CD6A0F037DC66A945FBA44D». (Microsoft.SqlServer.SmoExtended)

Какие-либо предложения?


person Mi_Dhah    schedule 04.04.2018    source источник
comment
Есть ли на исходном сервере сертификат с этим отпечатком на главном сервере? Как насчет целевого сервера?   -  person Ben Thul    schedule 05.04.2018


Ответы (1)


Сообщение об истечении срока действия сертификата было предупреждением, а не ошибкой. Вы по-прежнему можете использовать сертификат с истекшим сроком действия.

Удалите сертификат, который вы создали с измененной датой, затем снова восстановите сертификат с правильной датой.

person Matthew Miller    schedule 30.07.2018
comment
Я ДЕЙСТВИТЕЛЬНО хотел бы знать, сработало ли это с OP. потому что теперь я чертовски напуган. - person Racer SQL; 28.01.2021