ฉันใช้ผลิตภัณฑ์ที่ทำงานบน SQLServer 2008 เข้าใจได้ว่า บริษัท ที่จัดหานั้นไม่ได้ให้การสนับสนุน SQLServer เมื่อฉันติดตั้งผลิตภัณฑ์ฉันระบุรหัสผ่านเพื่อเข้ารหัสฐานข้อมูล ฉันต้องการเรียกใช้สำเนาผลิตภัณฑ์อื่นเพื่อทดสอบบนเซิร์ฟเวอร์อื่น ฉันกู้คืนฐานข้อมูลไปยังเซิร์ฟเวอร์อื่นและติดตั้งผลิตภัณฑ์บนเซิร์ฟเวอร์อื่นนั้น เมื่อฉันติดตั้งฉันได้ให้รหัสผ่านเดียวกันแล้วคืนค่าการสำรองข้อมูลจากเซิร์ฟเวอร์หลัก อย่างไรก็ตามฉันได้รับข้อความแสดงข้อผิดพลาด:
System.Data.SqlClient.SqlException: An error occurred during decryption.
จากผลิตภัณฑ์ ฉันสามารถเข้าถึงตารางโดยใช้สตูดิโอจัดการ SQLServer
ฉันได้ลองสิ่งนี้แล้ว:
บนเซิร์ฟเวอร์แรก:
CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff'
BACKUP CERTIFICATE cert1 TO FILE = 'd:\backup\cert1.dat'
WITH PRIVATE KEY
(
ENCRYPTION BY PASSWORD = 'mypassword',
FILE = 'd:\backup\cert1_privatekey.dat'
)
บนเซิร์ฟเวอร์ที่สอง:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mypassword'
CREATE CERTIFICATE cert1 FROM FILE = 'd:\cert1.dat'
WITH PRIVATE KEY
(
FILE = 'd:\cert1_privatekey.dat',
DECRYPTION BY PASSWORD = 'mypassword'
)
ฉันยังลองนี้ในเซิร์ฟเวอร์ที่สอง:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
แต่นั่นทำให้เกิดข้อผิดพลาดเกี่ยวกับคีย์ไม่สมมาตร
ฉันจะคืนค่าการสำรองข้อมูลจากเซิร์ฟเวอร์แรกไปยังเซิร์ฟเวอร์ที่สองได้อย่างไร
ปรับปรุง:
มีคีย์แบบอสมมาตรและสมมาตรในฐานข้อมูลด้วย หากฉันเปิดคีย์ symmetric โดยใช้คีย์ asymmetric ฉันได้รับข้อผิดพลาดเดียวกันดังนั้นฉันจึงคิดว่านั่นเป็นสาเหตุที่มันไม่ทำงาน - อย่างใดแป้นไม่ได้ถ่ายโอนในลักษณะที่สามารถใช้งานได้