Da TDE auf einem im Master gespeicherten Zertifikat basiert (das zum Verschlüsseln des Datenbankverschlüsselungsschlüssels verwendet wird), funktioniert dies nur, wenn Sie die Masterdatenbank auf einem anderen Server so wiederherstellen können, dass das Zertifikat entschlüsselt werden kann.
Dies ist die TDE-Verschlüsselungshierarchie:
- Diensthauptschlüssel (durch Windows geschützt; gebunden an die Anmeldeinformationen des Dienstkontos und einen Computerschlüssel)
- Datenbank-Hauptschlüssel (in diesem Fall der für die Hauptdatenbank)
- Zertifikat
- TDE-Verschlüsselungsschlüssel
Die ersten drei Elemente werden in der Master-Datenbank gespeichert und können alle gesichert werden. Der vierte wird im Header der verschlüsselten Datenbank gespeichert (verschlüsselt durch das Zertifikat von # 3).
In einem Fehlerszenario müssten Sie also genügend Verschlüsselungshierarchie wiederherstellen, um den TDE-Schlüssel lesen zu können. SQL Server erstellt den Diensthauptschlüssel bei der Installation. Während die Wiederherstellung der Master-Datenbank in einer anderen Instanz auch die Elemente 2 und 3 wiederherstellt, sind die zum Entschlüsseln erforderlichen Schlüssel nicht vorhanden. Ergebnis: unlesbare Daten.
Die beiden besten Optionen sind, entweder das Zertifikat (Nr. 3) aus einer Sicherung wiederherzustellen (eine gute Option, wenn der Master aus irgendeinem Grund nicht wiederhergestellt werden kann) oder Ihre Master-Datenbank und ihren Hauptschlüssel (Nr. 2) aus einer Sicherung wiederherzustellen. Das Wiederherstellen des Hauptschlüssels ist möglicherweise eine bessere Option, wenn Sie viele Zertifikate / Schlüssel haben, die durch diesen Schlüssel geschützt sind, und alle gleichzeitig zugänglich machen müssen. Dies beinhaltet die gleichen Vorsichtsmaßnahmen, die normalerweise mit dem Wiederherstellen der Master-Datenbank verbunden sind (Sortierungen, Anmeldungen, Datenbanknamen und Dateipfade usw.).
Im Allgemeinen würde ich nur empfehlen, den Master in einem Wiederherstellungsszenario wiederherzustellen. Für ein Migrations- / Scale-Out-Szenario (z. B. Verwendung von Verfügbarkeitsgruppen / Spiegelung mit einer TDE-verschlüsselten Datenbank) ist es besser, das Zertifikat (Nr. 3) so zu sichern / wiederherzustellen, dass es mit den Hauptschlüsseln verschlüsselt wird, die für jede zu verschiebende Instanz eindeutig sind zu. Sie müssen den privaten Schlüssel in die Zertifikatsicherung aufnehmen.
In jedem Fall müssen Sie Schlüssel- / Zertifikatsicherungen durchführen, also schützen Sie sie gut und speichern Sie sie an redundanten, sicheren Orten. Nur ein Backup des Masters bringt Sie nicht aus einer TDE-Katastrophe heraus. Sie benötigen eine Sicherung von mindestens einem Schlüssel oder Zertifikat.
1.Wenn Sie wie gewohnt eine verschlüsselte Sicherung auf einem anderen Server wiederherstellen möchten, tritt der folgende Fehler auf
2.Finden Sie den Zertifikatsnamen: in diesem Beispiel vestacert
3.Sichern Sie das Zertifikat vom Quellserver (Source encryptedserver):
4.Erstellen Sie ein neues Master-Zertifikat auf dem UAT-Server, falls es noch nicht vorhanden ist
5.Sichern Sie die Sicherungszertifikate auf dem UAT-Server (UATserver).
6.Nach diesem Schritt hat das Wiederherstellen der Sicherung keinen Fehler und alle Daten waren lesbar.
7.Aber das Lustige ist, dass das einfache Entfernen der Verschlüsselung und das Erstellen einer neuen Sicherung und das Wiederherstellen auf dem endgültigen Server (Final Server) nicht funktioniert und den folgenden Fehler verursacht. Die Datei "mydb_log" konnte nicht korrekt initialisiert werden. Untersuchen Sie die Fehlerprotokolle auf weitere Details.
8.Die richtige Methode zum Entfernen der Verschlüsselung von UAT besteht darin, alle Zeichen wie unten Schritt für Schritt und von unten nach oben zu entfernen
9. Erstellen Sie jetzt eine neue Sicherung vom UAT-Server und stellen Sie sie auf dem endgültigen Server wieder her
guter Artikel: http://sqlserverzest.com/2013/10/03/sql-server-restoring-a-tde-encrypted-database-to-a-different-server/
quelle
Wenn Ihr System abstürzt und unbrauchbar wird, können Sie ein neues System erstellen und die Masterdatenbank über der vorhandenen wiederherstellen, um das TDE-Zertifikat wiederherzustellen, solange Sie dasselbe Dienstkonto auf dem neuen System verwenden. Anschließend sollten Sie das System neu starten, um die Verschlüsselung des Service-Hauptschlüssels durch den lokalen Computerschlüssel zu korrigieren. Danach sollten Sie in der Lage sein, das TDE-Zertifikat zu sichern oder die Benutzerdatenbank wiederherzustellen und auf die Daten zuzugreifen. Der Service-Hauptschlüssel wird auf zwei Arten durch die Datenschutz-API des Windows-Servers geschützt: erstens mit dem systemspezifischen lokalen Computerschlüssel und zweitens mit dem Dienstkonto des Datenbankmoduls. Da Sie aufgrund eines Systemabsturzes nicht mehr über den lokalen Computerschlüssel des ursprünglichen Systems verfügen, müssen Sie dasselbe Dienstkonto verwenden. Das TDE-Zertifikat wird mit der Datenbank gesichert, kann jedoch erst aufgerufen werden, wenn die Verschlüsselungshierarchie vollständig ist.
quelle