Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.140.247.39
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
suite /
audit_null /
r /
[ HOME SHELL ]
Name
Size
Permission
Action
audit_plugin.result
744
B
-rw-r--r--
audit_plugin_2.result
101.8
KB
-rw-r--r--
audit_plugin_bugs.result
2.73
KB
-rw-r--r--
general_error_abort.result
1.64
KB
-rw-r--r--
general_error_abort_ps.result
3.83
KB
-rw-r--r--
general_log_abort.result
1.22
KB
-rw-r--r--
general_log_abort_ps.result
4.55
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : audit_plugin_2.result
call mtr.add_suppression("Event 'MYSQL_AUDIT_COMMAND_END' cannot be aborted."); call mtr.add_suppression("Event 'MYSQL_AUDIT_CONNECTION_DISCONNECT' cannot be aborted."); call mtr.add_suppression("Event 'MYSQL_AUDIT_GENERAL_RESULT' cannot be aborted."); call mtr.add_suppression("Event 'MYSQL_AUDIT_GENERAL_STATUS' cannot be aborted."); call mtr.add_suppression("Command 'Ping' cannot be aborted."); INSTALL PLUGIN null_audit SONAME 'adt_null.<expected_extension>'; ################ ## CONNECTION ## ################ CREATE USER user1@localhost IDENTIFIED BY 'pass'; SET GLOBAL null_audit_event_order_check = "MYSQL_AUDIT_CONNECTION_PRE_AUTHENTICATE;;ABORT_RET"; connect(localhost,user1,pass,test,MASTER_PORT,MASTER_SOCKET); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_CONNECTION_PRE_AUTHENTICATE';1). SET GLOBAL null_audit_event_order_check = "MYSQL_AUDIT_CONNECTION_PRE_AUTHENTICATE;;;" "MYSQL_AUDIT_GENERAL_LOG;;;" "MYSQL_AUDIT_CONNECTION_CONNECT;;ABORT_RET"; connect(localhost,user1,pass,test,MASTER_PORT,MASTER_SOCKET); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_CONNECTION_CONNECT';1). SET GLOBAL null_audit_event_order_check = NULL; SET GLOBAL null_audit_event_order_check = "MYSQL_AUDIT_CONNECTION_DISCONNECT;;ABORT_RET"; # mysql_audit_connection_disconnect result does not have any significance SET GLOBAL null_audit_event_order_check = NULL; ############# ## COMMAND ## ############# # Command start abort SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_COMMAND_START';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT 1; 1 1 SET @@GLOBAL.null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="14";ABORT_RET'; mysqld is alive SET @@GLOBAL.null_audit_event_order_check = NULL; ############# ## GENERAL ## ############# ########################## ## ABORT GENERAL RESULT ## ########################## SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;ABORT_RET'; SELECT 1; 1 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ########################################## ## ABORT GENERAL RESULT WITH MY_MESSAGE ## ########################################## SET @@null_audit_abort_message = "Abort with my_message."; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;ABORT_RET'; SELECT 1; 1 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ########################## ## ABORT GENERAL STATUS ## ########################## SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;ABORT_RET'; SELECT 1; 1 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ########################################## ## ABORT GENERAL STATUS WITH MY_MESSAGE ## ########################################## SET @@null_audit_abort_message = "Abort with my_message."; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;ABORT_RET'; SELECT 1; 1 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ########### ## QUERY ## ########### SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_START';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT 1; 1 1 SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_STATUS_END';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT 1; 1 1 ############## ## VARIABLE ## ############## SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;name="null_audit_abort_value" value="1";ABORT_RET'; SELECT @@GLOBAL.null_audit_abort_value; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_GLOBAL_VARIABLE_GET';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT @@GLOBAL.null_audit_abort_value; @@GLOBAL.null_audit_abort_value 1 ## SESSION variable access should not be blocked. SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";'; SELECT @@null_audit_abort_value; @@null_audit_abort_value 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK # SHOW GLOBAL VARIABLE SET @old_show_compatibility_56=@@global.show_compatibility_56; SET @@global.show_compatibility_56=ON; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="15";;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;name="null_audit_abort_value" value="1";ABORT_RET', @@null_audit_event_order_check_exact = 1; SHOW GLOBAL VARIABLES LIKE 'null_audit_abort_value'; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_GLOBAL_VARIABLE_GET';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SHOW GLOBAL VARIABLES LIKE 'null_audit_abort_value'; Variable_name Value null_audit_abort_value 1 SET @@global.show_compatibility_56=OFF; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="15";;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;ABORT_RET', @@null_audit_event_order_check_exact = 1; SHOW GLOBAL VARIABLES LIKE 'null_audit_abort_value'; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_GLOBAL_VARIABLE_GET';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SHOW GLOBAL VARIABLES LIKE 'null_audit_abort_value'; Variable_name Value null_audit_abort_value 1 SET @@global.show_compatibility_56=@old_show_compatibility_56; # SHOW GLOBAL VARIABLE SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="15";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="15";'; SHOW SESSION VARIABLES LIKE 'null_audit_abort_value'; Variable_name Value null_audit_abort_value 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="31";;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_SET;name="null_audit_event_order_check" value="NULL";ABORT_RET', @@null_audit_event_order_check_exact = 1; SET @@GLOBAL.null_audit_event_order_check = NULL; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_GLOBAL_VARIABLE_SET';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@GLOBAL.null_audit_event_order_check = NULL; # Global variables through virtual tables SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;name="null_audit_abort_value" value="1";ABORT_RET'; SELECT * FROM information_schema.global_variables WHERE VARIABLE_NAME = 'null_audit_abort_value'; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_GLOBAL_VARIABLE_GET';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ############################### ## QUERY - FIRST LEVEL ABORT ## ############################### CREATE DATABASE super_test; USE super_test; CREATE TABLE test_table (a INT); SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";ABORT_RET'; INSERT INTO test_table VALUES(1); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_STATUS_END';1). SELECT * FROM test_table; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT INSERT INTO test_table VALUES(2); SELECT * FROM test_table; a 2 DELETE FROM test_table; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";ABORT_RET'; INSERT INTO test_table VALUES(1); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_START';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT * FROM test_table; a SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";ABORT_RET', @@null_audit_event_order_check_exact = 1; INSERT INTO test_table VALUES(3); INSERT INTO test_table VALUES(4); |; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_STATUS_END';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT * FROM test_table; a 3 DELETE FROM test_table; CREATE PROCEDURE simple_proc() BEGIN INSERT INTO test_table VALUES(1); INSERT INTO test_table VALUES(2); END|; CREATE PROCEDURE simple_proc2() BEGIN INSERT INTO test_table VALUES(1); INSERT INTO test_table VALUES('a'); END|; CALL simple_proc(); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT * FROM test_table; a 1 2 DELETE FROM test_table; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="91";ABORT_RET', @@null_audit_event_order_check_exact = 1; CALL simple_proc(); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_STATUS_END';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT * FROM test_table; a 1 2 DELETE FROM test_table; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="91";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";', @@null_audit_event_order_check_exact = 1; CALL simple_proc(); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SELECT * FROM test_table; a 1 2 DELETE FROM test_table; call simple_proc2(); ERROR HY000: Incorrect integer value: 'a' for column 'a' at row 1 SELECT * FROM test_table; a 1 DELETE FROM test_table; CREATE TABLE test_table_2 (a INT) ENGINE=InnoDB; CREATE PROCEDURE proc() BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; START TRANSACTION; insert into test_table_2 values(1); insert into test_table_2 values(2); COMMIT WORK; END| SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="61";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="61";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="54";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="54";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="91";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";', @@null_audit_event_order_check_exact = 1; CALL proc(); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SELECT * FROM test_table_2 ORDER BY a; a 1 2 DELETE FROM test_table_2; ## ABORT ON COMMIT START SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="61";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="61";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="54";ABORT_RET', @@null_audit_event_order_check_exact = 1; CALL proc(); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT * FROM test_table_2; a DELETE FROM test_table_2; ## ABORT ON COMMIT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="61";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="61";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="54";;' 'MYSQL_AUDIT_QUERY_NESTED_STATUS_END;sql_command_id="54";ABORT_RET', @@null_audit_event_order_check_exact = 1; CALL proc(); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT * FROM test_table_2; a 1 2 DELETE FROM test_table_2; ## Not nested queries INSERT INTO test_table VALUES(1),(2),(3); INSERT INTO test_table_2 VALUES(1),(2),(3); SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT test_table.a FROM test_table WHERE EXISTS (SELECT test_table_2.a from test_table_2 WHERE test_table.a = test_table_2.a) ORDER BY test_table.a; a 1 2 3 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ## A query that references single table two times. Two READ events should be triggered. SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT t1.a FROM test_table as t1 WHERE EXISTS (SELECT t2.a from test_table as t2 WHERE t1.a = t2.a) ORDER BY t1.a; a 1 2 3 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ## A query that references single table two times. Two READ events should be triggered. SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM test_table AS t1, test_table_2 AS t2 ORDER BY t1.a, t2.a; a a 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DELETE FROM test_table; DELETE FROM test_table_2; ######################### ## TABLE_ACCESS - READ ## ######################### SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM test_table; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table READ; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM test_table; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; CREATE TEMPORARY TABLE audit_temp_table (a INT); SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM audit_temp_table; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="51";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="51";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; ANALYZE TABLE test_table; Table Op Msg_type Msg_text super_test.test_table analyze status OK SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ########################### ## TABLE_ACCESS - INSERT ## ########################### SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";ABORT_RET'; INSERT INTO test_table VALUES (1),(2); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_INSERT';1). SELECT * FROM test_table ORDER BY a; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; INSERT INTO test_table VALUES (1),(2); SELECT * FROM test_table ORDER BY a; a 1 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; INSERT INTO test_table VALUES (101),(102); SELECT * FROM test_table ORDER BY a; a 1 2 101 102 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; LOCK TABLES test_table WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; INSERT INTO audit_temp_table VALUES (1),(2); SELECT * FROM audit_temp_table ORDER BY a; a 1 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; DELETE FROM test_table WHERE a > 100; ################################## ## TABLE_ACCESS - INSERT SELECT ## ################################## SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="6";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";ABORT_RET'; INSERT INTO test_table SELECT a+2 FROM test_table; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_INSERT';1). SELECT * FROM test_table ORDER BY a; a 1 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="6";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";ABORT_RET'; INSERT INTO test_table SELECT a+2 FROM test_table; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_READ';1). SELECT * FROM test_table ORDER BY a; a 1 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="6";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="6";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; INSERT INTO test_table SELECT a+2 FROM test_table; SELECT * FROM test_table ORDER BY a; a 1 2 3 4 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table WRITE, test_table AS test_table_l READ; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="6";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="6";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; INSERT INTO test_table SELECT a+100 FROM test_table AS test_table_l; SELECT * FROM test_table ORDER BY a; a 1 2 3 4 101 102 103 104 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; DELETE FROM test_table WHERE a > 100; ########################### ## TABLE_ACCESS - UPDATE ## ########################### SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";ABORT_RET'; UPDATE test_table SET a=a+4; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_UPDATE';1). SELECT * FROM test_table ORDER BY a; a 1 2 3 4 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; UPDATE test_table SET a=a+4; SELECT * FROM test_table ORDER BY a; a 5 6 7 8 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; UPDATE test_table SET a=a+4; SELECT * FROM test_table ORDER BY a; a 9 10 11 12 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; UPDATE audit_temp_table SET a=a+2; SELECT * FROM audit_temp_table ORDER BY a; a 3 4 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ################################# ## TABLE_ACCESS - UPDATE WHERE ## ################################# SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";ABORT_RET'; UPDATE test_table SET a=a+10 WHERE a>10; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_UPDATE';1). SELECT * FROM test_table ORDER BY a; a 9 10 11 12 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; UPDATE test_table SET a=a+10 WHERE a>10; SELECT * FROM test_table ORDER BY a; a 9 10 21 22 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; UPDATE test_table SET a=a+10 WHERE a>10; SELECT * FROM test_table ORDER BY a; a 9 10 31 32 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; update test_table set test_table.a=test_table.a+10 where test_table.a in (select test_table_2.a + 10 from test_table_2); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ################################# ## TABLE_ACCESS - DELETE WHERE ## ################################# SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table";ABORT_RET'; DELETE FROM test_table WHERE a>7; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_DELETE';1). SELECT * FROM test_table ORDER BY a; a 9 10 31 32 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="7";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; DELETE FROM test_table WHERE a>31; SELECT * FROM test_table ORDER BY a; a 9 10 31 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="7";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; DELETE FROM test_table WHERE a>30; SELECT * FROM test_table ORDER BY a; a 9 10 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; ########################### ## TABLE_ACCESS - DELETE ## ########################### SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table";ABORT_RET'; DELETE FROM test_table; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_DELETE';1). SELECT * FROM test_table ORDER BY a; a 9 10 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="7";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; DELETE FROM test_table; SELECT * FROM test_table ORDER BY a; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK INSERT INTO test_table VALUES (1),(2); LOCK TABLES test_table WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="7";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; DELETE FROM test_table; SELECT * FROM test_table ORDER BY a; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="7";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="7";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; DELETE FROM audit_temp_table; SELECT * FROM audit_temp_table ORDER BY a; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP TABLE audit_temp_table; ############################ ## TABLE_ACCESS - REPLACE ## ############################ CREATE TABLE test_table_3 (id INT NOT NULL, data VARCHAR(10) NOT NULL, PRIMARY KEY (id)); INSERT INTO test_table_3 VALUES (1, 'Old'), (2, 'Old'); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="40";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_3";ABORT_RET'; REPLACE INTO test_table_3 VALUES (1, 'New'); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_INSERT';1). SELECT * FROM test_table_3 ORDER BY id; id data 1 Old 2 Old SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="40";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="40";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; REPLACE INTO test_table_3 VALUES (1, 'New'); SELECT * FROM test_table_3 ORDER BY id; id data 1 New 2 Old SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table_3 WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="40";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="40";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; REPLACE INTO test_table_3 VALUES (2, 'New'); SELECT * FROM test_table_3 ORDER BY id; id data 1 New 2 New SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLE; ################################### ## TABLE_ACCESS - REPLACE SELECT ## ################################### SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="41";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_3";ABORT_RET'; REPLACE INTO test_table_3 SELECT id, 'Sel' FROM test_table_3; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_INSERT';1). SELECT * FROM test_table_3 ORDER BY id; id data 1 New 2 New SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="41";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="41";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; REPLACE INTO test_table_3 SELECT id, 'Sel' FROM test_table_3; SELECT * FROM test_table_3 ORDER BY id; id data 1 Sel 2 Sel SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK LOCK TABLES test_table_3 WRITE, test_table_3 AS test_table_3_l READ; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="41";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="41";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; REPLACE INTO test_table_3 SELECT id, 'Sec' FROM test_table_3 AS test_table_3_l; SELECT * FROM test_table_3 ORDER BY id; id data 1 Sec 2 Sec SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; ############################# ## TABLE_ACCESS - TRUNCATE ## ############################# SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="8";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table_3";ABORT_RET'; TRUNCATE test_table_3; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_DELETE';1). SELECT * FROM test_table_3 ORDER BY id; id data 1 Sec 2 Sec SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="8";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="8";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; TRUNCATE test_table_3; SELECT * FROM test_table_3 ORDER BY id; id data SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK INSERT INTO test_table_3 VALUES (1, 'AAA'),(2, 'BBB'); LOCK TABLES test_table_3 WRITE; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="8";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="8";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; TRUNCATE test_table_3; SELECT * FROM test_table_3 ORDER BY id; id data SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK UNLOCK TABLES; ################################################# ## TABLE_ACCESS - TRUNCATE (HTON_CAN_RECREATE) ## ################################################# CREATE TABLE test_table_4 (a INT) ENGINE=MyISAM; INSERT INTO test_table_4 VALUES(1),(2),(3); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="8";;' 'MYSQL_AUDIT_TABLE_ACCESS_DELETE;db="super_test" table="test_table_4";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="8";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; TRUNCATE test_table_4; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP TABLE test_table_4; ############################ ## TABLE_ACCESS - TRIGGER ## ############################ CREATE PROCEDURE sp_test_table_insert(val INT) INSERT INTO test_table VALUES (@val); CREATE TRIGGER ins_sum BEFORE INSERT ON test_table_2 FOR EACH ROW CALL sp_test_table_insert(@NEW.a + 100); ALTER TABLE test_table_3 DROP COLUMN data; INSERT INTO test_table_3 VALUES (1),(2); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="6";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table_2";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="91";;' 'MYSQL_AUDIT_STORED_PROGRAM_EXECUTE;;;' 'MYSQL_AUDIT_QUERY_NESTED_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="6";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";;'; INSERT INTO test_table_2 SELECT * FROM test_table_3; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ################# ## OUTER TABLE ## ################# SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table_3";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM (SELECT id FROM test_table_3) AS a; id 1 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ########## ## VIEW ## ########## TRUNCATE TABLE test_table; INSERT INTO test_table VALUES (1), (2), (3); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="102";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="102";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; CREATE VIEW audit_view AS SELECT * FROM test_table; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; INSERT INTO audit_view VALUES (4), (5), (6); SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SELECT * FROM test_table; a 1 2 3 4 5 6 SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="4";;' 'MYSQL_AUDIT_TABLE_ACCESS_UPDATE;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="4";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; UPDATE audit_view SET a = a + 7; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SELECT * FROM test_table; a 8 9 10 11 12 13 SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM audit_view; a 8 9 10 11 12 13 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP VIEW audit_view; ################### ## DERIVED TABLE ## ################### SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT COUNT(*) FROM (SELECT a FROM test_table GROUP BY a) AS a1; COUNT(*) 6 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ######################### ## PREPARED STATEMENTS ## ######################### DELETE FROM test_table; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="99";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="99";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; PREPARE stmt FROM "INSERT INTO test_table VALUES (1),(2)"; SELECT * FROM test_table ORDER BY a; a SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="100";;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="5";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="5";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="100";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; EXECUTE stmt; SELECT * FROM test_table ORDER BY a; a 1 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ######################################################## ## PREPARED STATEMENTS - DERIVED TABLE ## ## Bug#23699991 EXECUTE STATEMENT CAUSES SERVER CRASH ## ## WHEN AUDIT_LOG IS INSTALLED ON SERVER ## ######################################################## PREPARE stmt FROM 'SELECT COUNT(*) FROM (SELECT a FROM test_table GROUP BY a) AS a1'; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="100";;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="test_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="100";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; EXECUTE stmt; COUNT(*) 2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP PREPARE stmt; DROP TABLE test_table_3; DROP TABLE test_table_2; DROP TABLE test_table; ################ ## PARTITIONS ## ################ CREATE TABLE table_part (id INT NOT NULL PRIMARY KEY, name VARCHAR(16) NOT NULL, year YEAR, INDEX name (name(8))) PARTITION BY HASH(id) PARTITIONS 2; SET @@null_audit_event_order_check_exact = <expected_check_exact>; DROP TABLE table_part; SET @@null_audit_event_order_check_exact = 1; ########### ## MERGE ## ########### CREATE TABLE merge_table_1 (message CHAR(20)) ENGINE=MyISAM; CREATE TABLE merge_table_2 (message CHAR(20)) ENGINE=MyISAM; INSERT INTO merge_table_1 (message) VALUES ('AAA'),('CCC'),('EEE'); INSERT INTO merge_table_2 (message) VALUES ('BBB'),('DDD'),('FFF'); CREATE TABLE merge_table (message CHAR(20)) ENGINE=MERGE UNION=(merge_table_1,merge_table_2) INSERT_METHOD=LAST; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table";ABORT_RET'; SELECT * FROM merge_table; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_READ';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table_1";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table_2";ABORT_RET'; SELECT * FROM merge_table; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_READ';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table_1";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="merge_table_2";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";'; SELECT * FROM merge_table ORDER BY message; message AAA BBB CCC DDD EEE FFF SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP TABLE merge_table; DROP TABLE merge_table_2; DROP TABLE merge_table_1; ############# ## HANDLER ## ############# CREATE TABLE handler_table (message CHAR(20)) ENGINE=MyISAM; INSERT INTO handler_table VALUES ('AAA'), ('BBB'), ('CCC'), ('DDD'); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="70";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="70";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; HANDLER handler_table OPEN; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="72";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="handler_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="72";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; HANDLER handler_table READ FIRST; message AAA SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="72";;' 'MYSQL_AUDIT_TABLE_ACCESS_READ;db="super_test" table="handler_table";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="72";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; HANDLER handler_table READ NEXT; message BBB SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="71";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="71";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; HANDLER handler_table CLOSE; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK HANDLER handler_table OPEN AS handler_table_alias; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="72";;' 'MYSQL_AUDIT_GENERAL_ERROR;;;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="72";;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; HANDLER handler_table_alias READ message NEXT; ERROR 42000: Key 'message' doesn't exist in table 'handler_table_alias' SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP TABLE handler_table; ############### ## LOAD DATA ## ############### create table audit_load_data (a varchar(20), b varchar(20)); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="30";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="audit_load_data";ABORT_RET'; load data infile '../../std_data/loaddata_dq.dat' into table audit_load_data fields terminated by ',' enclosed by '"' escaped by '"' (a,b); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_INSERT';1). SELECT * FROM audit_load_data ORDER BY a; a b SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="30";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="audit_load_data";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="30";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; load data infile '../../std_data/loaddata_dq.dat' into table audit_load_data fields terminated by ',' enclosed by '"' escaped by '"' (a,b); SELECT * FROM audit_load_data ORDER BY a; a b a"b cd"ef a"b c"d"e field1 field2 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK DROP TABLE audit_load_data; ############## ## LOAD XML ## ############## create table audit_xml_data (a int, b varchar(64)); SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="30";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="audit_xml_data";ABORT_RET'; load xml infile '../../std_data/loadxml.dat' into table audit_xml_data rows identified by '<row>'; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_TABLE_ACCESS_INSERT';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT select * from audit_xml_data order by a; a b SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="30";;' 'MYSQL_AUDIT_TABLE_ACCESS_INSERT;db="super_test" table="audit_xml_data";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="30";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; load xml infile '../../std_data/loadxml.dat' into table audit_xml_data rows identified by '<row>'; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK select * from audit_xml_data order by a; a b 1 b1 2 b2 3 b3 11 b11 111 b111 112 b112 & < > " ' &unknown; -- check entities 212 b212 213 b213 214 b214 215 b215 216 &bb b; DROP TABLE audit_xml_data; USE mysql; DROP DATABASE super_test; DROP USER user1@localhost; ######################## ## INFORMATION SCHEMA ## ######################## SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_GLOBAL_VARIABLE_GET;<IGNORE>;;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="0";'; SELECT * FROM INFORMATION_SCHEMA.TABLES; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ######################## ## PERFORMANCE SCHEMA ## ######################## SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="16";;' 'MYSQL_AUDIT_QUERY_STATUS_END;sql_command_id="16";;' 'MYSQL_AUDIT_GENERAL_RESULT;;;' 'MYSQL_AUDIT_GENERAL_STATUS;;;' 'MYSQL_AUDIT_COMMAND_END;command_id="3";'; SHOW STATUS; SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-OK ######################## ## CONNECTION - CLEAN ## ######################## CREATE USER user1; CREATE USER user2; SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user1@localhost user1@% # Try to change user for a given connection (user and database specified) ERROR 42000: Access denied for user 'user2'@'%' to database 'mysql' SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user1@localhost user1@% # Allow 'user2' to use 'mysql' database. GRANT ALL ON mysql.* TO user2; # Change user with 'mysql' as initial database SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user2@localhost user2@% # Bring back user1 (no database specified) SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user1@localhost user1@% ## Reset connection ## SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user1@localhost user1@% DROP USER user1; DROP USER user2; ############################### ## CONNECTION - INSTRUMENTED ## ############################### CREATE USER user1; CREATE USER user2; SET @@GLOBAL.null_audit_event_order_check = 'MYSQL_AUDIT_CONNECTION_PRE_AUTHENTICATE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_CONNECTION_CONNECT;;ABORT_RET'; connect(localhost,user1,,test,MASTER_PORT,MASTER_SOCKET); ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_CONNECTION_CONNECT';1). SET @@GLOBAL.null_audit_event_order_check = NULL, @@GLOBAL.null_audit_event_order_check_exact = 1; #--COM_CHANGE_USER SET @@GLOBAL.null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="17";ABORT_RET'; # Try to change user for a given connection (user and database specified) ERROR 42000: Access denied for user 'user2'@'%' to database 'mysql' # Allow 'user2' to use 'mysql' database. GRANT ALL ON mysql.* TO user2; # Change user with 'mysql' as initial database ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_COMMAND_START';1). SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user1@localhost user1@% # Reset connection SET @@GLOBAL.null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="31";ABORT_RET'; SELECT USER(), CURRENT_USER(); USER() CURRENT_USER() user1@localhost user1@% ## Should no take any effect. COM_QUIT should be possible. SET @@GLOBAL.null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="1";ABORT_RET'; SET @@GLOBAL.null_audit_event_order_check = NULL; DROP USER user1; DROP USER user2; ## CONNECTION - INSTRUMENTED - END ## SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="3";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="35";ABORT_RET'; USE mysql; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_START';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT USE mysql; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_START';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SELECT 1; 1 1 ########################## ## CUSTOM ERROR MESSAGE ## ########################## SET @@null_audit_abort_message = "Custom error text."; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";ABORT_RET'; SELECT 1; ERROR HY000: Custom error text. SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ## CUSTOM ERROR MESSAGE - END ## ######################### ## CUSTOM ERROR RESULT ## ######################### SET @@null_audit_abort_value = 123; SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;;' 'MYSQL_AUDIT_GENERAL_LOG;;;' 'MYSQL_AUDIT_QUERY_START;sql_command_id="0";ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_QUERY_START';123). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ## CUSTOM ERROR RESULT - END ## ########### ## PARSE ## ########### SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_PARSE_PREPARSE';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check_exact = <expected_check_exact>; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_START;command_id="<expected_command_start_id>";;' 'MYSQL_AUDIT_PARSE_PREPARSE;;;' 'MYSQL_AUDIT_PARSE_POSTPARSE;;ABORT_RET'; SELECT 1; ERROR HY000: Aborted by Audit API ('MYSQL_AUDIT_PARSE_POSTPARSE';1). SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ############################### ## TEST CHECK - INVALID DATA ## ############################### SET @@null_audit_event_order_check_exact = 1; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>";;' 'MYSQL_AUDIT_COMMAND_START;command_id="XXX";'; SELECT 1; ERROR HY000: Invalid data for 'MYSQL_AUDIT_COMMAND_START' -> command_id="INVALID_ID" SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-INVALID-DATA ######################### ## COMMAND_END - ABORT ## ######################### SET @@null_audit_abort_message = "Abort with my_message."; SET @@null_audit_event_order_check_exact = 1; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_end_id>";ABORT_RET'; SELECT 1; 1 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT SET @@null_audit_event_order_check_exact = 1; SET @@null_audit_event_order_check = 'MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_end_id>";ABORT_RET'; SELECT 1; 1 1 SELECT @@null_audit_event_order_check; @@null_audit_event_order_check EVENT-ORDER-ABORT ## CUSTOM ERROR MESSAGE - END ## ################## ## Event record ## ################## SET @@null_audit_event_record_def = 'MYSQL_AUDIT_GENERAL_RESULT;MYSQL_AUDIT_COMMAND_END'; SELECT 1; 1 1 SELECT @@null_audit_event_record; @@null_audit_event_record MYSQL_AUDIT_GENERAL_RESULT;; MYSQL_AUDIT_GENERAL_STATUS;; MYSQL_AUDIT_COMMAND_END;command_id="<expected_command_id>"; SET @@null_audit_event_record = ''; ERROR HY000: Variable 'null_audit_event_record' is a read only variable UNINSTALL PLUGIN null_audit; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown
Close