Ich verwende ein Produkt, das auf SQLServer 2008 ausgeführt wird. Verständlicherweise bietet das Unternehmen, das es bereitstellt, keine SQLServer-Unterstützung an. Bei der Installation des Produkts habe ich ein Kennwort zum Verschlüsseln der Datenbank angegeben. Ich möchte eine weitere Kopie des Produkts zum Testen auf einem anderen Server ausführen. Ich habe die Datenbank auf einem anderen Server wiederhergestellt und das Produkt auf diesem anderen Server installiert. Bei der Installation habe ich dasselbe Kennwort angegeben und dann eine Sicherung vom Hauptserver wiederhergestellt. Ich erhalte jedoch die Fehlermeldung:
System.Data.SqlClient.SqlException: An error occurred during decryption.
vom Produkt. Ich kann mit SQLServer Management Studio auf die Tabellen zugreifen.
Ich habe das versucht:
auf dem ersten 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'
)
auf dem zweiten 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'
)
Ich habe dies auch auf dem zweiten Server versucht:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
Dies ergab jedoch eine Fehlermeldung über einen asymmetrischen Schlüssel.
Wie kann ich die Sicherung vom ersten Server auf dem zweiten Server wiederherstellen?
Aktualisieren:
Es gibt auch einen asymmetrischen und einen symmetrischen Schlüssel in der Datenbank. Wenn ich den symmetrischen Schlüssel mit dem asymmetrischen Schlüssel öffne, wird der gleiche Fehler angezeigt. Ich denke, deshalb funktioniert er nicht - irgendwie werden die Schlüssel nicht so übertragen, dass sie verwendet werden können.
quelle