Sto usando un prodotto che gira su SQL Server 2008. Comprensibilmente la società che lo fornisce non offre supporto SQL Server. Quando ho installato il prodotto ho specificato una password per crittografare il database. Vorrei eseguire un'altra copia del prodotto per il test su un altro server. Ho ripristinato il database su un altro server e ho installato il prodotto su quell'altro server. Quando l'ho installato ho fornito la stessa password, quindi ho ripristinato un backup dal server principale. Tuttavia sto ricevendo il messaggio di errore:
System.Data.SqlClient.SqlException: An error occurred during decryption.
dal prodotto. Posso accedere alle tabelle utilizzando SQLServer Management Studio.
Ho provato questo:
sul primo server:
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'
)
sul secondo server:
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'
)
Ho anche provato questo sul secondo server:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
ma questo ha dato un messaggio di errore su una chiave asimmetrica.
Come posso ripristinare il backup dal primo server sul secondo server?
Aggiornare:
Esiste anche una chiave asimmetrica e simmetrica nel database. Se apro la chiave simmetrica usando la chiave asimmetrica ottengo lo stesso errore, quindi penso che sia per questo che non funziona - in qualche modo le chiavi non vengono trasferite in modo tale da poter essere utilizzate.