2016-11-01 3 views
0

Ich habe ein System für einen Client mit PHP und MySQL abgeschlossen. Benutzer melden sich beim System an und stellen dann Informationen bereit, die in einer Datenbank gespeichert werden. Der PHP-Code verbindet sich mit der Datenbank mit einem "gemeinsamen" Benutzernamen, d. Jeder einzelne Benutzer hat keine Berechtigungen für die Datenbank.Log MySQL DB Änderungen von Benutzer bekannt nur in PHP

Jetzt, kurz vor dem Produktivstart, möchte der Client ein Protokoll der an der Datenbank vorgenommenen Änderungen. Ich habe untersucht, Trigger zu verwenden, aber die Variable user() in mysql speichert den "gemeinsamen" Benutzer, nicht den angemeldeten Benutzer. Das System zu modifizieren, um jede SQL-Transaktion manuell zu protokollieren, ist in der kurzen Zeit, die vor dem Start verfügbar ist, nicht praktisch.

Gibt es eine Möglichkeit für mysql, die eingeloggten Benutzerinformationen aus dem Session-Cookie (oder einer anderen PHP-Variable) zu extrahieren?

Antwort

0

Nein, mysql weiß nichts darüber, was PHP mit den Benutzern Ihrer Anwendung macht. Sie sollten alle gewünschten Informationen absichtlich in die Datenbank stellen. Als ziemlich schmutzig Abhilfe können Sie alle mysql-Abfragen log von

SET GLOBAL general_log = 'ON'; 
Einstellung