Setzen Sie "Encryption Enabled" auf FALSE ... was kann schief gehen?

7

Ich migriere eine Datenbank von SQL Server 2012auf SQL Server 2014auf denselben Server.

Ich konfiguriere LOG SHIPPING in einer Datenbank, die anscheinend verschlüsselt ist:

Geben Sie hier die Bildbeschreibung ein

Beim Festlegen des Protokollversands wurde folgende Meldung angezeigt (als die Datenbank aus einer Sicherung wiederhergestellt wurde):

Geben Sie hier die Bildbeschreibung ein

Ich bin der neue DBA hier und es gibt keinen Bericht über Hauptschlüssel, verschlüsselte Schlüssel usw.

Ich stelle den Protokollversand von SQL2012 nach SQL2014 ein (mit Norecovery). Was kann schief gehen, wenn ich diese Datenbank auf setze Encryption enabled - falseund versuche, die Datenbank mit dem Protokollversand-Assistenten wiederherzustellen?

Es gibt einige Fragen zu diesem Problem, wie diese , aber alle sagen, ich brauche das Passwort.

Ich habe dieses Zertifikat gerade auf master > security > certificatesdem Primärserver gefunden (2012):

Geben Sie hier die Bildbeschreibung ein

Und es gibt einige Codebeispiele über das Interet, aber ich kann ihnen wirklich nicht vertrauen (ich denke nicht, dass es zu einfach ist):

`USE MASTER
GO
ALTER DATABASE DatabaseName
SET ENCRYPTION OFF
GO
USE DatabaseName
GO
DROP DATABASE ENCRYPTION KEY
GO`

Edit1:

In dieser Frage sagt Dylon:

Wenn Sie den Fingerabdruckfehler erhalten, wurde das Zertifikat nicht ordnungsgemäß aus den Zertifikat- / Schlüsselsicherungen des Quellservers erstellt.

Ich bin verwirrt über dieses Thema und möchte nur die Verschlüsselung deaktivieren, die Datenbank auf dem anderen Server wiederherstellen, um den Versand zu protokollieren, und eines Tages die Verschlüsselung aktivieren.


Edit2:

Es Database > tasks > manage database encryptiongibt auch einige Optionen:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie dies deaktivieren, kann ich die Datenbank erneut sichern und auf der neuen Instanz wiederherstellen.

Racer SQL
quelle

Antworten:

7

Deaktivieren Sie TDE nicht. Abgesehen davon, dass es sich um eine langwierige Datengröße handelt, wurde sie ursprünglich aus einem bestimmten Grund eingerichtet, und Sie verstoßen möglicherweise gegen den für TDE bestehenden Compliance- / Betriebsgrund.

Richten Sie den Protokollversand lieber ordnungsgemäß in Gegenwart von TDE ein. Befolgen Sie die unter Verschieben einer TDE-geschützten Datenbank auf einen anderen SQL Server beschriebenen Schritte . Sie exportieren das TDE-Zertifikat vom ursprünglichen Server und importieren es dann auf den Standby-Server. Stellen Sie dabei sicher, dass es mit dem masterDatenbankhauptschlüssel und der Datenbankhauptschlüssel masterwiederum mit dem Diensthauptschlüssel verschlüsselt ist. Danach sollten bei korrekter Ausführung die Wiederherstellungsvorgänge erfolgreich sein, da das erforderliche TDE-Zertifikat vorhanden ist.

So kopieren Sie das Zertifikat: Das Zertifikat befindet sich in der masterDatenbank der Primärinstanz. Sie müssen ausführen:

BACKUP CERTIFICATE TDE_CERT 
 TO FILE <where to save cert> 
 WITH PRIVATE KEY (FILE = <where to save private key>, 
  ENCRYPTION BY PASSWORD = <password for the private key file>);

Kopieren Sie dann sowohl die Zertifikats- als auch die privaten Schlüsseldateien in die sekundäre Datei und stellen Sie sie mastermithilfe der folgenden Methoden wieder her :

 CREATE CERTIFICATE TDE_CERT 
  FROM FILE = <your copied cert file> 
  WITH PRIVATE KEY (FILE = <your copied private key file>,
   DECRYPTION BY PASSWORD = <password that protects private key file>);

TDE_CERTin masteron the Secondary muss mit dem masterDatenbank-Hauptschlüssel verschlüsselt werden , der wahrscheinlich erstellt werden muss.

Remus Rusanu
quelle
@Resmus, vielen Dank für Ihre Antwort. Ich habe mit dem Manager gesprochen, und wir brauchen diese Verschlüsselung wirklich nicht. Es wurde vor langer Zeit von einem DBA gemacht und wir brauchen es jetzt wirklich nicht. Aber ich werde Ihren Blog lesen und sehen, was ich tun kann. Vielen Dank und ich werde die Ergebnisse später veröffentlichen. Und ja, unsere Datenbank ist 1,5 TB groß. Es würde einige Zeit dauern, die Verschlüsselung zu deaktivieren, oder?
Racer SQL
2
Richtig, der Prozentsatz zeigt den Fortschritt. Sie können DROP DATABASE ENCRYPTION KEYnach Abschluss der Entschlüsselung ausführen .
Remus Rusanu
1
Außerdem müssen Sie sicherstellen, dass kein Protokolldatensatz eine verschlüsselte Ära der Datenbank überlappt, bevor Sie versuchen, auf einer sekundären Datenbank wiederherzustellen. Beginnen Sie mit einer neuen vollständigen Sicherung, die nach dem erstellt wurde DROP DATABASE ENCRYPTION KEY.
Remus Rusanu
1
Vielen Dank für die Veröffentlichung des Follow-up. Jetzt können wir hier auf andere verweisen, die fragen: "Wie lange dauert eine 1,4-TB-TDE-Entfernung?" ;)
Remus Rusanu
1
Außerdem können Sie jetzt die Sicherungskomprimierung aktivieren. Msdn.microsoft.com/en-us/library/bb934049.aspx : Verschlüsselte Daten komprimieren erheblich weniger als gleichwertige unverschlüsselte Daten. Wenn TDE zum Verschlüsseln einer Datenbank verwendet wird, kann die Sicherungskomprimierung den Sicherungsspeicher nicht wesentlich komprimieren. Daher wird die gemeinsame Verwendung von TDE und Backup-Komprimierung nicht empfohlen. .
Remus Rusanu