1. ถ้าคุณต้องการคืนค่าสำเนาสำรองที่เข้ารหัสไปยังเซิร์ฟเวอร์อื่นตามปกติคุณจะพบข้อผิดพลาดต่อไปนี้
Cannot find server certificate with thumbprint …...
2. หาชื่อใบรับรอง: ในตัวอย่างนี้ vestacert
SELECT * FROM sys.certificates
3. สำรองใบรับรองจากเซิร์ฟเวอร์ต้นทาง (ซอร์สเข้ารหัสเซิร์ฟเวอร์):
BACKUP CERTIFICATE vestacert
TO FILE = 'c:\Backup\certificate_TDE_Test_Certificate.cer'
WITH PRIVATE KEY
(FILE = 'c:\Backup\certificate_TDE_Test_Key.pvk',
ENCRYPTION BY PASSWORD = 'Password12#')
4. สร้าง Master Cert ใหม่บนเซิร์ฟเวอร์ UAT หากยังไม่มีอยู่
USE master GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'D1ffPa$$w0rd'
5. กู้คืนการสำรองข้อมูล certs ในเซิร์ฟเวอร์ UAT (UATserver)
CREATE CERTIFICATE vestacert2
FROM FILE = 'C:\tmp\certificate_TDE_Test_Certificate.cer'
WITH PRIVATE KEY (FILE = 'C:\tmp\LCMS\certificate_TDE_Test_Key.pvk',
DECRYPTION BY PASSWORD = 'Passsword12#')
6. หลังจากขั้นตอนนี้การกู้คืนข้อมูลสำรองไม่มีข้อผิดพลาดและข้อมูลทั้งหมดอ่านได้
7. แต่สิ่งที่ตลกคือการลบการเข้ารหัสและทำการสำรองข้อมูลใหม่และกู้คืนบนเซิร์ฟเวอร์สุดท้าย (เซิร์ฟเวอร์สุดท้าย) ไม่ทำงานและให้ข้อผิดพลาดต่อไปนี้ไฟล์ "mydb_log" ล้มเหลวในการเริ่มต้นอย่างถูกต้อง ตรวจสอบบันทึกข้อผิดพลาดเพื่อดูรายละเอียดเพิ่มเติม
8. วิธีที่ถูกต้องในการลบการเข้ารหัสจาก UAT คือการลบสัญญาณทั้งหมดเช่นด้านล่างทีละขั้นตอนและจากล่างขึ้นบน
USE master
ALTER DATABASE mydb SET ENCRYPTION OFF
USE mydb
DROP DATABASE ENCRYPTION KEY
USE master
DROP CERTIFICATE vestacert2
DROP MASTER KEY
9. ตอนนี้สร้างการสำรองข้อมูลใหม่จากเซิร์ฟเวอร์ UAT และคืนค่าเป็นเซิร์ฟเวอร์สุดท้าย
บทความที่ดี: http://sqlserverzest.com/2013/10/03/sql-server-restoring-a-tde-encrypted-database-to-a-different-server/