SQLServer 2008 üzerinde çalışan bir ürün kullanıyorum. Anlaşılır şekilde onu sağlayan şirket SQLServer desteği sunmuyor. Ürünü kurduğumda veritabanını şifrelemek için bir şifre belirledim. Başka bir sunucuda test edilmek üzere ürünün başka bir kopyasını çalıştırmak istiyorum. Veritabanını başka bir sunucuya geri yükledim ve ürünü diğer sunucuya yükledim. Yüklediğimde aynı şifreyi verdim ve ardından ana sunucudan bir yedeği geri yükledim. Ancak hata mesajını alıyorum:
System.Data.SqlClient.SqlException: An error occurred during decryption.
üründen. SQLServer Management studio'yu kullanarak tablolara erişebilirim.
Bunu denedim:
ilk sunucuda:
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'
)
ikinci sunucuda:
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'
)
Ayrıca ikinci sunucuda bunu denedim:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
ancak bu asimetrik bir anahtar hakkında bir hata mesajı verdi.
Yedeklemeyi ilk sunucudan ikinci sunucuya nasıl geri yükleyebilirim?
Güncelleme:
Veritabanında da asimetrik ve simetrik bir anahtar vardır. Simetrik anahtarı asimetrik anahtarı kullanarak açarsam aynı hatayı alıyorum, bu yüzden işe yaramadığını düşünüyorum - bir şekilde anahtarlar kullanılabilecek şekilde aktarılmıyor.