7 Stimmen

Kostenloses Tool zur Überwachung der Datenbank auf Änderungen?

Ich bin auf der Suche nach einem Tool, das Datenbanken (mysql und oracle) auf Änderungen überwachen kann.

Wenn jemand etwas in eine beliebige (oder ausgewählte) Tabelle einfügt oder aktualisiert, möchte ich darüber informiert werden. Es könnte sehr nützlich sein für die Arbeit mit anderen Menschen Code, die einige Magie in der Datenbank tun.

Ich weiß, dass dies mit Triggern möglich ist ( siehe diese Frage ), aber ich bin mehr an einem kostenlosen Tool interessiert, das das kann.

0 Stimmen

Warum können Sie keine Auslöser verwenden? Deshalb gibt es sie ja und sie sind eingebaut.

0 Stimmen

Weil ich möchte, dass es universell ist und ich möglicherweise keine Berechtigungen zum Erstellen von Triggern auf Produktionsdatenbanken habe.

2voto

Rob van Wijk Punkte 17434

Für Oracle suchen Sie nach dem Befehl AUDIT. Dieser Befehl schreibt Audit-Datensätze in die Tabelle SYS.AUD$, die Sie überwachen können.

Weitere Informationen über die AUDIT-Anweisung: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4007.htm#SQLRF01107

und über Datenbank-Audits: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/security.htm#sthref2916

Mit freundlichen Grüßen, Rob.

1voto

David Hedlund Punkte 125085

Ich bin nicht ganz sicher, ob es das ist, was Sie suchen, aber es gibt JetProfiler für MySQL, mit dem Sie genau überprüfen können, was in einer Datenbank abfragetechnisch passiert. Ich bin mir ziemlich sicher, dass es Äquivalente für Oracle gibt...

1voto

b.roth Punkte 9147

Vielleicht können Sie schnell Ihr eigenes Tool programmieren. Ich würde mit einem einfachen Tool beginnen, das grundlegende Daten über jede Tabelle zum Vergleich in eine CSV-Datei exportiert: Anzahl der Zeilen (d.h. ein select count(*)), Primärschlüssel und ein Feld mit dem Datum der letzten Änderung, falls verfügbar. Dann könnten Sie von Zeit zu Zeit einen Vergleich zwischen der neuesten CSV-Datei und der vorherigen durchführen.

Ich bin mir aber nicht sicher, ob das machbar ist - es hängt von der Datenmenge in Ihrer Datenbank ab.

0 Stimmen

Ich denke darüber nach, aber vielleicht gibt es etwas da draußen :) aber Sie haben Recht, einige Bereiche sollten verwendet werden, weil es eine Menge von Daten sein kann.

0 Stimmen

+1 die Frage sucht nach einer universellen Lösung und diese ist universell

1voto

Unreason Punkte 12300

Wenn Sie den Zugriff von Drittanbietern auf Ihre Datenbank überprüfen möchten, sollten Sie die Protokolle (aktivieren Sie die Protokollierung in mysql/oracle) in einer kontrollierten Umgebung überprüfen. Verfahren .

Alternativ können auch Schnappschüsse zum Vergleich gemacht werden.

Wenn Sie die Änderungen von Dritten an der Daten Wenn es um die Gültigkeit der Daten geht, sollten Sie sie auf Ihre Geschäftsregeln abstimmen, und sie fällt unter die Anwendungsebene (da der Prüfungsprozess weitgehend von der Struktur Ihrer Daten abhängt; eine einfache Prüfung des universell formatierten Diffs wird nicht sehr effizient sein).

Sie könnten prüfen TOAD (Data Diff Viewer).

Sie sollten sich auch fragen, warum Sie Dritten den Zugriff auf Ihre Datenbank in einer Weise gestatten, die nicht kontrolliert, sondern nur passiv im Nachhinein überprüft wird. Im Idealfall werden alle Integritäts- und Geschäftsregeln während der Verarbeitung der Eingaben in das System über externe Schnittstellen definiert und validiert.

0 Stimmen

Es ist nicht wirklich ein Drittanbieter, nur andere Teams verwenden dieselbe Datenbank und es ist einfacher für mich, die Daten zu betrachten, um zu verstehen, was sie tun. ich werde Ihre Vorschläge ausprobieren.

1voto

Marek Punkte 7191

Aktivieren Sie die binäre Protokollierung:

http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Damit wird jede Änderung in der Datenbank aufgezeichnet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X