Frage

Ich würde gerne wissen, ob es möglich ist MySQL-Binär-Log aufzeichnen Uid ' s (Benutzernamen) für die Benutzer, die änderungen an der DB.

Dies ist nötig für die Prüfung Zweck.

Ist das möglich?

War es hilfreich?

Lösung

Das ist nicht das, was die Binär-Protokoll wird für das binäre Protokoll hält eine Aufzeichnung aller änderungen an einer Datenbank, in der Regel für die Zwecke der Replikation und recovery.

Eine mögliche alternative könnte sein, die general query log, Ich glaube, dass auch der Benutzername in einige Weg.

Dieses ist alles, vorausgesetzt, Sie sprechen über die tatsächliche Verbindung mit Benutzernamen, nicht irgendeine beliebige "Anwender" in Ihrer Anwendung.

Hier ist ein Beispiel, das ich gerade gezogen von einem meiner logs:

111130 13:46:50   130 Connect   myusername@localhost on
                  130 Init DB   mydatabase
                  130 Query     SELECT somefields FROM sometable
                  130 Query     SELECT somefields FROM sometable
                  130 Quit

Wie Sie sehen können, erhalten Sie die Verbindung den Benutzernamen und dann etwas mit, dass die Verbindungs-ID (in diesem Fall 130) ist, dass Benutzer, die auf die Verbindung.

Andere Tipps

Binärprotokolle werden hauptsächlich zu Replikationszwecken verwendet und erlauben nicht, Nebeninformationen außer Datenänderungen zu speichern.

Wenn Sie sichtbare Protokolle speichern möchten (da Binärprotokolle so gestaltet wurden, dass nur MySQL verwendet werden kann), müssen Sie eine zusätzliche Tabelle haben, um zu speichern: Daten aus der primären Tabelle + Benutzer + Zeit.

Sie können auch einen Blick darauf werfen Abfrageprotokoll

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top