Saya menggunakan produk yang berjalan pada SQLServer 2008. Maklum perusahaan yang memasoknya tidak menawarkan dukungan SQLServer. Ketika saya menginstal produk saya menetapkan kata sandi untuk mengenkripsi database. Saya ingin menjalankan salinan produk lain untuk pengujian di server lain. Saya telah memulihkan database ke server lain dan menginstal produk di server lain itu. Ketika saya menginstalnya saya memberikan kata sandi yang sama, dan kemudian mengembalikan cadangan dari server utama. Namun saya menerima pesan kesalahan:
System.Data.SqlClient.SqlException: An error occurred during decryption.
dari produk. Saya dapat mengakses tabel menggunakan SQLServer Management studio.
Saya sudah mencoba ini:
di server pertama:
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'
)
di server kedua:
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'
)
Saya juga mencoba ini di server kedua:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
tapi itu memberi pesan kesalahan tentang kunci asimetris.
Bagaimana saya bisa mengembalikan cadangan dari server pertama ke server kedua?
Memperbarui:
Ada juga kunci asimetris dan simetris dalam database. Jika saya membuka kunci simetris menggunakan kunci asimetris saya mendapatkan kesalahan yang sama, jadi saya pikir itu sebabnya itu tidak berfungsi - entah bagaimana kunci tidak mentransfer sedemikian rupa sehingga dapat digunakan.