Transparente Datenverschlüsselung

8

Gibt es Best Practices bei der Konfiguration von TDE in SQL Server 2008? In SQLMag heißt es im Artikel "FAQs zur transparenten Datenverschlüsselung", dass die CPU die Auslastung möglicherweise um bis zu 30% erhöht hat.

Gibt es außer dem Hinzufügen von Server-Leistung noch etwas, was DBAs normalerweise tun, wenn sie TDE einschalten?

Zack White
quelle

Antworten:

7
  1. Einige zusätzliche Punkte, die mir aufgefallen sind, sind, dass diese Funktion zusammen mit TDE nicht so gut funktioniert, wenn Sie die Backup-Komprimierungsfunktion verwenden. Wir haben eine sehr minimale Kompressionsrate festgestellt, die fast vernachlässigbar ist. Berücksichtigen Sie daher diesen Punkt der Sicherungskomprimierung, wenn Sie einen verwenden.

  2. Ich bin mir sicher, dass Sie sich dessen bewusst sind, aber nur um hinzuzufügen, TDE ist für die Enterprise Edition verfügbar. Berücksichtigen Sie dies daher auch beim Einrichten von SQL Server für TDE.

  3. TDE bietet nicht die gleiche granulare Steuerung, die für eine Benutzer- oder Datenbankrolle spezifisch ist, wie sie die Verschlüsselung auf Zellenebene bietet.

  4. Stellen Sie sicher, dass die Verschlüsselungsschlüssel sicher an einem sicheren Ort gespeichert sind, auf den im Falle eines Wiederherstellungsszenarios zugegriffen werden kann. Machen Sie sich mit dem Wiederherstellen einer Datenbank vertraut, die auf einem neuen Server verschlüsselt wurde. (ursprünglich ein Kommentar von Jonathan Fite ).

KASQLDBA
quelle
3
Ein paar weitere zum Hinzufügen: 5) Ihr Speichersubsystem ist etwas ausgelasteter, während TDE damit beschäftigt ist, Bits umzudrehen, wenn Sie TDE zum ersten Mal aktivieren. 6) Keine sofortige Dateiinitialisierung mit aktiviertem TDE. Planen Sie Ihren Speicherplatz daher sorgfältiger, da das automatische Wachstum von Datendateien viel länger dauern kann jetzt abhängig von Ihrer Einstellung 7) TDE-Checkpoints, damit zukünftige Protokolleinträge verschlüsselt werden
SQLmojoe
2

Erstellen Sie vor dem Verschlüsseln einer Datenbank zunächst eine Sicherungskopie des Hauptschlüssels und des Zertifikats und speichern Sie diese offline. Warten Sie nicht, bis Sie TDE angewendet haben, um dies zu tun. Speichern Sie die Passwörter auch in einem Passwort-Tresor und machen Sie deutlich, welche Passwörter mit welchem ​​Objekt korrelieren. Sie wollen diese wirklich nicht aus den Augen verlieren.

Die Auswirkungen von TDE auf die Datenbank hängen vollständig von der Arbeitslast ab: Ich habe TDE kürzlich auf ein Data Warehouse angewendet, und die Auswirkungen auf die Leistung auf die Nachtlast waren nichts, was darauf hindeutet, dass der Prozess nicht an die CPU gebunden war. Dies gilt jedoch möglicherweise nicht für Ihre Datenbank. Wenn Sie also zuerst die Arbeitslast in einer Entwicklungsumgebung testen können, tun Sie dies.

Es sind nicht nur die Daten in den Dateien, die verschlüsselt werden: TDE verschlüsselt auch tempDB. Wenn Sie also andere Datenbanken haben, die TempDB stark verwenden, stellen Sie möglicherweise einen Leistungseinbruch fest. Sowohl Backups als auch Snapshots werden ebenfalls verschlüsselt.

Überlegen Sie auch, ob diese Datenbank in anderen Umgebungen wiederhergestellt werden muss (z. B. Test oder UAT). Sie müssen das Zertifikat wiederherstellen, mit dem die Datenbank auf diesen anderen Servern verschlüsselt wurde. Dies mag nicht nach einem zu großen Problem klingen, aber wenn Sie in keiner dieser Umgebungen ein Unternehmen oder einen Entwickler haben, kann dies kostspielig werden. Eine Alternative zum Anwenden von TDE in der gesamten Umgebung besteht darin, die Datenbank in einer Zwischeninstanz wiederherzustellen, die ein Unternehmen / Entwickler ist, und entweder die vertraulichen Daten zu verschlüsseln oder die Verschlüsselung zu löschen und eine neue Sicherung zu erstellen, die in anderen Umgebungen wiederhergestellt werden soll. Diese zweite Wahl ist wahrscheinlich nicht die sinnvollste, aber es ist immer eine Option ...

Beim Aktivieren von TDE werden zwei Sperren auf die Datenbank angewendet: eine gemeinsam genutzte Sperre und eine Aktualisierungssperre. TechNet gibt dies vollständig an:

Wenn TDE aktiviert (oder deaktiviert) ist, wird die Datenbank in der Katalogansicht sys.databases als verschlüsselt markiert und der DEK-Status auf Verschlüsselung in Bearbeitung gesetzt. Der Server startet einen Hintergrundthread (als Verschlüsselungsscan oder -scan bezeichnet), der alle Datenbankdateien scannt und verschlüsselt (oder entschlüsselt, wenn Sie TDE deaktivieren). Während die DDL ausgeführt wird, wird eine Aktualisierungssperre für die Datenbank vorgenommen. Der Verschlüsselungsscan, der asynchron zur DDL ausgeführt wird, wird gemeinsam genutzt. Alle normalen Vorgänge, die nicht mit diesen Sperren in Konflikt stehen, können fortgesetzt werden. Ausgeschlossene Vorgänge umfassen das Ändern der Dateistruktur und das Trennen der Datenbank. Während normale Datenbankschreibvorgänge aus dem Pufferpool auf die Festplatte verschlüsselt sind, sind Protokolldateischreibvorgänge möglicherweise nicht verschlüsselt. Der Scan erzwingt auch einen Rollover für die virtuelle Protokolldatei (VLF), um sicherzustellen, dass zukünftige Schreibvorgänge in das Protokoll verschlüsselt werden.

Meine Erfahrung bestand in Data Warehouses, die tagsüber kaum genutzt und über Nacht stark genutzt wurden, sodass ich TDE tagsüber mit minimaler Unterbrechung anwenden konnte. Wenn Sie ein OLTP in der Produktion verschlüsseln, planen Sie dies am besten während eines Wartungsfensters, um Probleme zu minimieren.

Bearbeiten: Auch im Hinblick auf die Komprimierung; TDE wirkt sich zwar auf die Sicherungskomprimierung aus, jedoch nicht auf die Komprimierung von Zeilen, Seiten und Spaltenspeichern. Wenn Sie also den Komprimierungsverlust durch Sicherungen ausgleichen möchten, können Sie Objekte in der Datenbank komprimieren. Abhängig von Ihrer Arbeitslast möchten Sie möglicherweise keine Komprimierung in Ihrer Datenbank implementieren, da dies die CPU weiter belastet. Es gibt einen ausgezeichneten TechNet-Artikel zur Implementierung der Komprimierung: https://technet.microsoft.com/en-us/library/dd894051%28v=sql.100%29.aspx

Richie Lee
quelle
Danke, Richie. Wir möchten eine Produktionsanwendungsdatenbank für den Tagesgebrauch verschlüsseln. Der Anbieter behauptet, "es nicht zu unterstützen", aber ich bin nicht sicher, wie sie es könnten oder nicht könnten, da es ihren Code nicht direkt beeinflusst, es sei denn, die Abfragen sind nicht optimiert.
Zack White
Ich bin sicher, dass die Datenbank mit TDE funktioniert, aber wie gut ist eine andere Sache, daher kommentieren die Anbieter. Wenn Sie die Leistung vor / nach TDE testen können, bevor Sie sie live ausführen (auch wenn es so lange dauert, bis TDE angewendet wird), erhalten Sie natürlich eine bessere Vorstellung davon, wie die Datenbank funktioniert.
Richie Lee