The MariaDB Audit Plugin is a powerful tool for database administrators aiming to improve security and accountability within their MariaDB environments. The MariaDB Audit Plugin logs user activities at the database level, like SQL queries, logins, and access patterns, providing administrators with a detailed record of interactions with the database. The plugin is compatible with MariaDB and MySQL and can be tailored to track specific events based on organizational needs.

Key Features of the MariaDB Audit Plugin

  1. User Activity Logging: Logs user logins, logouts, and any SQL queries executed by users. This logging helps in tracking down unauthorized access and potential misuse.
  1. Flexible Event Filtering: Customize the logging of specific event types, such as CONNECT (for connection events), QUERY (for executed SQL queries), and TABLE (for table-specific actions). Administrators can reduce unnecessary log volume by selecting only relevant event types and focusing on critical activities.
  1. Compliance Support: In regulated industries, tracking database interactions is often essential for compliance (e.g., GDPR, HIPAA, PCI DSS). The audit plugin provides a detailed and timestamped record of activities, which can be crucial during audits.
  1. JSON Log Output: The latest plugin versions support JSON logging, making it easier to parse and analyze logs with modern log management tools like Elastic Stack or Splunk.
  1. Integration with Log Management Systems: The plugin supports integration with centralized logging solutions. By shipping logs to systems like Syslog, administrators can review database activities alongside logs from other infrastructure, improving the ability to spot suspicious behavior.

Installing and Configuring the MariaDB Audit Plugin

Installation of the MariaDB Audit Plugin is straightforward and typically involves adding a few lines in the MariaDB configuration file:

1. Locate the audit plugin libraries on the server using the following command:

MariaDB> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+

$ ls /usr/lib/mysql/plugin/server_audit.so

2. Installation:

To install the plugin, load it into MariaDB with the following command:

MariaDB> INSTALL SONAME 'server_audit';

3. Configuration

Configure the audit plugin in the my.cnf (or my.ini for Windows) file. Here are some key configuration options:

 [mariadb]
 plugin_load_add = server_audit
 server_audit_logging = ON
 server_audit_events = CONNECT, QUERY, TABLE
 server_audit_file_path = /var/log/mariadb_audit.log
 server_audit_output_type = FILE
  • server_audit_logging: enables logging
  • server_audit_events: specifies the types of events to log
  • server_audit_file_path: defines the location of the log file
  • server_audit_output_type: can be set to `FILE` or `SYSLOG`

Managing Audit Logs

Audit logs can grow rapidly, especially in high-transaction environments. Here are some best practices for managing these logs:

  • Log Rotation: Configure log rotation on your server to manage disk space. You can use utilities like ‘logrotate’ in Linux to set up periodic rotations.
  • Archival and Retention Policies: Define how long logs are retained and where older logs are archived. Some organizations offload logs to cloud storage or long-term archival systems for compliance.
  • Parsing and Analyzing Logs: Tools like `grep`, `awk`, or log analysis software (e.g., Splunk, Elastic Stack) can be employed to search for specific activities, such as failed login attempts or queries against sensitive tables.

Potential Drawbacks and Limitations

While the MariaDB Audit Plugin is highly beneficial, it has some limitations:

  • Performance Impact: In high-transaction environments, enabling the plugin can impact performance. Fine-tune the logging level to avoid logging excessive data.
  • Limited Real-Time Capabilities: Although useful for post-incident investigations, the plugin doesn’t actively prevent unauthorized access or malicious actions in real-time.
  • Storage Requirements: As with any logging tool, large volumes of audit data may require significant storage.

Conclusion

The MariaDB Audit Plugin is valuable for organizations focused on database security, compliance, and accountability. Providing in-depth logging capabilities offers database administrators visibility into user actions and potential security risks. Although not a real-time defense mechanism, the plugin’s logs are vital in responding to incidents and ensuring a secure database environment.

Please contact us or check out our MySQL EE/MariaDB Remote Managed Services & Support for more information.