Spec-Zone .ru
спецификации, руководства, описания, API

6.3.11.3. The Audit Log File

Audit log file contents are not encrypted. See Section 6.3.11.2, "Audit Log Plugin Security Considerations".

The audit log file is written as XML, using UTF-8 (up to 4 bytes per character). The root element is <AUDIT>. The closing </AUDIT> tag of the root element is written when the audit log plugin terminates, so the tag is not present in the file while the plugin is active.

The root element contains <AUDIT_RECORD> elements, each of which contains other elements that provide information about the audited event.

Here is a sample log file, reformatted slightly for readability:

<?xml version="1.0" encoding="UTF-8"?><AUDIT> <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:24 UTC</TIMESTAMP>  <RECORD_ID>1_2013-04-17T15:03:24</RECORD_ID>  <NAME>Audit</NAME>  <SERVER_ID>1</SERVER_ID>  <VERSION>1</VERSION>  <STARTUP_OPTIONS>/usr/local/mysql/bin/mysqld    --socket=/usr/local/mysql/mysql.sock    --port=3306</STARTUP_OPTIONS>  <OS_VERSION>x86_64-osx10.6</OS_VERSION>  <MYSQL_VERSION>5.7.2-m12-log</MYSQL_VERSION> </AUDIT_RECORD> <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:40 UTC</TIMESTAMP>  <RECORD_ID>2_2013-04-17T15:03:24</RECORD_ID>  <NAME>Connect</NAME>  <CONNECTION_ID>2</CONNECTION_ID>  <STATUS>0</STATUS>  <STATUS_CODE>0</STATUS_CODE>  <USER>root</USER>  <OS_LOGIN></OS_LOGIN>  <HOST>localhost</HOST>  <IP>127.0.0.1</IP>  <COMMAND_CLASS>connect</COMMAND_CLASS>  <PRIV_USER>root</PRIV_USER>  <PROXY_USER></PROXY_USER>  <DB>test</DB> </AUDIT_RECORD>... <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:41 UTC</TIMESTAMP>  <RECORD_ID>4_2013-04-17T15:03:24</RECORD_ID>  <NAME>Query</NAME>  <CONNECTION_ID>2</CONNECTION_ID>  <STATUS>0</STATUS>  <STATUS_CODE>0</STATUS_CODE>  <USER>root[root] @ localhost [127.0.0.1]</USER>  <OS_LOGIN></OS_LOGIN>  <HOST>localhost</HOST>  <IP>127.0.0.1</IP>  <COMMAND_CLASS>drop_table</COMMAND_CLASS>  <SQLTEXT>DROP TABLE IF EXISTS t</SQLTEXT> </AUDIT_RECORD> <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:41 UTC</TIMESTAMP>  <RECORD_ID>5_2013-04-17T15:03:24</RECORD_ID>  <NAME>Query</NAME>  <CONNECTION_ID>2</CONNECTION_ID>  <STATUS>0</STATUS>  <STATUS_CODE>0</STATUS_CODE>  <USER>root[root] @ localhost [127.0.0.1]</USER>  <OS_LOGIN></OS_LOGIN>  <HOST>localhost</HOST>  <IP>127.0.0.1</IP>  <COMMAND_CLASS>create_table</COMMAND_CLASS>  <SQLTEXT>CREATE TABLE t (i INT)</SQLTEXT> </AUDIT_RECORD>... <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:41 UTC</TIMESTAMP>  <RECORD_ID>7_2013-04-17T15:03:24</RECORD_ID>  <NAME>Quit</NAME>  <CONNECTION_ID>2</CONNECTION_ID>  <STATUS>0</STATUS>  <STATUS_CODE>0</STATUS_CODE>  <USER></USER>  <OS_LOGIN></OS_LOGIN>  <HOST></HOST>  <IP></IP>  <COMMAND_CLASS>connect</COMMAND_CLASS> </AUDIT_RECORD>... <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:47 UTC</TIMESTAMP>  <RECORD_ID>9_2013-04-17T15:03:24</RECORD_ID>  <NAME>Shutdown</NAME>  <CONNECTION_ID>3</CONNECTION_ID>  <STATUS>0</STATUS>  <STATUS_CODE>0</STATUS_CODE>  <USER>root[root] @ localhost [127.0.0.1]</USER>  <OS_LOGIN></OS_LOGIN>  <HOST>localhost</HOST>  <IP>127.0.0.1</IP>  <COMMAND_CLASS></COMMAND_CLASS> </AUDIT_RECORD> <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:47 UTC</TIMESTAMP>  <RECORD_ID>10_2013-04-17T15:03:24</RECORD_ID>  <NAME>Quit</NAME>  <CONNECTION_ID>3</CONNECTION_ID>  <STATUS>0</STATUS>  <STATUS_CODE>0</STATUS_CODE>  <USER></USER>  <OS_LOGIN></OS_LOGIN>  <HOST></HOST>  <IP></IP>  <COMMAND_CLASS>connect</COMMAND_CLASS> </AUDIT_RECORD> <AUDIT_RECORD>  <TIMESTAMP>2013-04-17T15:03:49 UTC</TIMESTAMP>  <RECORD_ID>11_2013-04-17T15:03:24</RECORD_ID>  <NAME>NoAudit</NAME>  <SERVER_ID>1</SERVER_ID> </AUDIT_RECORD></AUDIT>

Elements within <AUDIT_RECORD> elements have these characteristics:

Every <AUDIT_RECORD> element contains a set of mandatory elements. Other optional elements may appear, depending on the audit record type.

The following elements are mandatory in every <AUDIT_RECORD> element:

The following elements are optional in <AUDIT_RECORD> elements. Many of them occur only with specific <NAME> values.