簡體   English   中英

將TDE加密的數據庫備份還原到其他服務器-SQL Server 2008

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM