bewaren van sqlcommando's.
Is er een standaard manier om alle SQL command's op te slaan in een tabel of moet ik daar zelf een routine voor schrijven?
Het gaat me om de delete, insert en update commando's
Jan
Gewijzigd op 09/04/2019 11:37:58 door - Ariën -
Op 1 of andere manier is er 1 record verwijderd Op zich niet erg omdat het snel gezien is en verbeterd. maar ik zou willen te weten komen door wie. Voor nu is dit te laat maar voor de toekomst misschien niet.
Jan
Username, IPadres en nog meer spannende details.
Je kan ook MySQL instructie geven alles te loggen, maar dat logt dan geloof ik alleen ALLE queries, dus ook SELECT.
https://stackoverflow.com/questions/303994/log-all-queries-in-mysql
De log kan dan best groot worden, en is niet echt herleidbaar naar iemand. Daar heeft MySQL ook bovendien geen enkele weet van.
Gewijzigd op 09/04/2019 11:48:21 door - Ariën -
Jan R op 09/04/2019 11:40:05:
Op 1 of andere manier is er 1 record verwijderd.
Kunnen de gebruikers rechtstreeks SQL-code uitvoeren? Of kan dat uitsluitend indirect via een gebruikersinterface met knoppen bijvoorbeeld?
Heb je al in de access_log van je site gekeken? Daar kan je ook SQL-injection momenten teugvinden.
Uiteraard zie je er geen user bij want je logt ongetwijfeld in met één username/password in je database connector.
De groei van de logs kan je beperken door logrotate toe te passen. Logrotate vernieuwt elke dag de log en bewaart een x aantal (in te stellen in dagen) versies in .gz formaat.
Ik gebruik logrotate voor vrijwel alle logs. Loopt je systeem dus nooit vol.
Gewijzigd op 09/04/2019 12:39:58 door Aad B
Ik denk aan volgende velden
- commando (string)
- tijdstip (datetime)
- user (string)
- ip (string)
Jan
Je queries zullen daar dan wel rekening mee moeten houden (... WHERE deleted=0 ...).
Gewijzigd op 10/04/2019 15:41:10 door Thomas van den Heuvel
Of je maakt er een TIMESTAMP van: zo krijg je een prullenbak die je automatisch kunt legen na bijvoorbeeld 30 dagen.