MariaDB-Audit-Plugin

MariaDB Audit Plugin

Allgemein

Das Audit Plugin von MariaDB erlaubt die Aufzeichnung von SQL-Aktivitäten in MariaDB. Für jede Client Session werden folgende Informationen geloggt:

  • wer verbindet sich (Nutzername und Host)
  • welche Queries werden ausgeführt
  • welche Tabellen werden adressiert
  • welche Server-Variablen werden verändert

Die Logs können dann wahlweise in das Syslog oder in ein eigenes Syslog geschrieben werden. https://mariadb.com/kb/en/mariadb-audit-plugin/

Das Plugin ist auch für RDS-Datenbanken bei Amazon AWS verfügbar. https://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html

Wie kann man das Audit Plugin konfigurieren?

Via Konfigurationsdatei

[mariadb]
plugin_load_add = server_audit

[server]
server_audit_logging = on
server_audit_events = 'QUERY,TABLE'
server_audit_output_type = 'syslog'
server_audit_excl_users = 'user1, user-xy, user-banane'
...

Via MySQL globale Variablen (On-the-fly Konfiguration ohne Reload)

INSTALL SONAME 'server_audit';
SET GLOBAL server_audit_output_type = "syslog";
SET GLOBAL server_audit_logging = on;
SET GLOBAL server_audit_events = 'QUERY,TABLE';
SET GLOBAL server_audit_excl_users = 'user1, user-xy, user-banane';

AWS RDS Konfiguration

Die Konfiguration des Plugins für RDS-Datenbanken in AWS kann auf verschiedene Weisen erfolgen (z.B. Web-Konsole oder CLI). Anleitungen dafür sind in der AWS-Doku beschrieben: https://docs.aws.amazon.com/de_de/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html#USER_WorkingWithOptionGroups.Create

Wie kann ich die Logs auswerten?

Z. B. in den Syslog-Dateien (wenn entsprechend konfiguriert):

  • tail -f /var/log/syslog | grep audit
  • grep audit /var/log/syslog