Was würde passieren, wenn ein Primärschlüssel geändert oder Berechtigungen für eine gespeicherte Prozedur aktualisiert würden, ohne dass Sie sich dessen bewusst wären? Das Verfolgen von SQL Server nur mit Change Data Capture (CDC) reicht nicht aus, um den Überblick über Änderungen an Ihren kritischen Datenbanken zu behalten. In der Tat können Sie ohne zuverlässige, effiziente SQL Server-Änderungsverfolgung einfach nicht kontrollieren, was auf Ihren SQL-Servern vor sich geht.
Native Änderungsverfolgung in SQL Server
SQL Server verwendet einen synchronen Verfolgungsmechanismus, d. h. Änderungen werden registriert, sobald Änderungen in der Data Manipulation Language (DML) festgeschrieben wurden. Die SQL Server-Änderungsverfolgungsfunktionen, die von nativen Tools angeboten werden, bieten einige Änderungsverfolgungsfunktionen; Sie können beispielsweise die Änderungsverfolgung verwenden, um zu sehen, wer welche Tabellen gelöscht hat oder welche Zeilen geändert wurden. Sie müssen jedoch eine Reihe von Abfragen in Transact-SQL schreiben, um detailliertere Informationen zur Änderungsverfolgung zu erhalten, z. B. Details zu geänderten Daten, geänderten Spalten oder vom Benutzer erstellten Tabellen. Darüber hinaus kann das Aktivieren der Änderungsverfolgung Ihren Server schnell füllen, sodass Sie ständig Bereinigungen durchführen müssen, um zu vermeiden, dass der Speicherplatz knapp wird, was zu einer Beeinträchtigung der Leistung und Verfügbarkeit führen würde.
Um die SQL Server-Änderungsverfolgung zu verwenden, müssen Sie die Änderungsverfolgung auf zwei verschachtelten Ebenen aktivieren: Datenbankänderungsverfolgung und Tabellenänderungsverfolgung.
Aktivieren der Änderungsverfolgung für eine Datenbank
Damit die Änderungsverfolgung funktioniert, muss Ihre Datenbank mindestens die SQL Server 2005-Kompatibilitätsstufe aufweisen. Sie können die Versionsnummer Ihrer Serverdatenbank ermitteln, indem Sie die Abfrage „SELECT @@VERSION“ ausführen. Sie müssen die Änderungsverfolgung für jede Datenbank einzeln aktivieren.
Um die Änderungsverfolgung auf Datenbankebene zu aktivieren, können Sie entweder SQL Server Management Studio verwenden oder die folgende T-SQL-Abfrage ausführen:
ALTER DATABASE Accounting2020
SETZEN SIE CHANGE_TRACKING = EIN
(CHANGE_RETENTION = 3 TAGE, AUTO_CLEANUP = EIN)
Nachdem die Änderungsverfolgung aktiviert ist, können Sie einen anderen Aufbewahrungszeitraum festlegen, indem Sie die Parameter CHANGE_RETENTION und AUTO_CLEANUP ändern.
Aktivieren der Änderungsverfolgung für eine Tabelle
Wie bei Datenbanken erfordert die Verfolgung von Tabellenänderungen die Aktivierung der Verfolgung für jede Tabelle separat. Auch hier können Sie dies entweder in SQL Server Management Studio oder mit einer Abfrage wie diesem Beispiel tun:
ALTER TABLE Contracts
CHANGE_TRACKING AKTIVIEREN
MIT (TRACK_COLUMNS_UPDATED = ON)
Sobald die Änderungsverfolgung für eine Tabelle aktiviert ist, werden Informationen zu allen Zeilen angezeigt, die durch allgemeine SQL-Anweisungen (SELECT, INSERT, UPDATE, DELETE usw.) geändert wurden.) intern gespeichert.
Der Parameter TRACK_COLUMNS_UPDATED wird verwendet, um die Änderungsverfolgung für Spalten ein- oder auszuschalten. Wenn es aktiviert ist, speichert SQL Server zusätzliche Informationen darüber, welche Spalten aktualisiert wurden. Da die Nachverfolgung von Spalteninformationen jedoch den Speicheraufwand erhöht, ist diese Option standardmäßig deaktiviert, und es wird empfohlen, sie für alle Anwendungen deaktiviert zu lassen, für die keine Verlaufsdaten erforderlich sind.
Einfache und effiziente Änderungsverfolgung mit Netwrix Auditor
Im Gegensatz zu nativen Änderungsverfolgungstools, bei denen Sie Abfragen schreiben und Daten manuell durchsuchen müssen, bietet Netwrix Auditor für SQL Server vorgefertigte Dashboards und Berichte, mit denen Sie Änderungen leicht erkennen und alle kritischen Details anzeigen können. Sie können beispielsweise sehen, dass eine Spalte, die gelöscht wurde, oder eine Benutzerrolle geändert wurde, zusammen mit den Vorher-Nachher-Werten jeder Änderung. Mit der interaktiven Suche können Sie verdächtige Änderungen schnell untersuchen, um die Nichtverfügbarkeit der Datenbank und andere Störungen zu verhindern.
Netwrix Auditor macht es auch einfach, wichtige Ressourcen im Auge zu behalten, z. B. die Server mit den meisten Änderungen und die Benutzer, die die meisten Änderungen vornehmen. Berichtsabonnements halten Sie automatisch über den von Ihnen gewählten Zeitplan auf dem Laufenden. Und Sie müssen sich nicht mehr ständig um die Bereinigung kümmern, da der zweistufige Speicher von Netwrix Ihre konsolidierten SQL Server-Änderungsdaten für mehr als 10 Jahre kostengünstig hält und gleichzeitig jederzeit einen schnellen und sicheren Zugriff darauf gewährleistet. Noch besser ist, dass Netwrix Auditor einen nicht aufdringlichen Überwachungsmechanismus verwendet, sodass die Datenbankleistung niemals beeinträchtigt wird.