Rule version MADB-10-000700 · STIG v2 · 2026-08-25
Under some circumstances, it may be useful to monitor who/what is reading privilege/permission/role information. Therefore, it must be possible to configure auditing to do this. MariaDB makes such information available through an audit log file.
This requirement addresses explicit requests for privilege/permission/role membership information. It does not refer to the implicit retrieval of privileges/permissions/role memberships that MariaDB continually performs to determine if any and every action on the database is permitted.
Verify the MariaDB Enterprise Audit plugin is loaded and actively logging:
MariaDB> SHOW GLOBAL STATUS LIKE 'Server_audit_active';
If the MariaDB Enterprise Audit is not active, this is a finding.
Check what filters are in place by running the following as an administrative user:
MariaDB> SELECT * FROM mysql.server_audit_filters;
Verify query_events ALL is included in corresponding audit filters. If not, this is a finding.
MariaDB> SHOW GLOBAL VARIABLES LIKE 'server_audit_file_path';
As a Linux user with sufficient privileges to view logs, tail the audit log file.
$ tail -f /var/log/mysql/server_audit.log (default location)
In another terminal run:
MariaDB> SHOW GRANTS;
If an audit record is not produced in the first terminal, this is a finding.
The MariaDB Enterprise Audit plugin can be configured to audit these changes.
Update necessary audit filters to include query_event ALL. Example:
MariaDB> DELETE FROM mysql.server_audit_filters WHERE filtername = 'default';
MariaDB> INSERT INTO mysql.server_audit_filters (filtername, rule) VALUES ('default', JSON_COMPACT( '{ "connect_event": [ "CONNECT", "DISCONNECT" ], "query_event": [ "ALL" ] }' ));