|
| 1 | +set global server_audit_logging=on; |
| 2 | +USE test; |
| 3 | +CREATE TABLE source ( |
| 4 | +id bigint(20) NOT NULL AUTO_INCREMENT, |
| 5 | +PRIMARY KEY (id) |
| 6 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| 7 | +CREATE TABLE dest ( |
| 8 | +id bigint(20) NOT NULL, |
| 9 | +PRIMARY KEY (id) |
| 10 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| 11 | +CREATE TABLE dest_2 ( |
| 12 | +id bigint(20) NOT NULL, |
| 13 | +PRIMARY KEY (id) |
| 14 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| 15 | +CREATE TRIGGER test_trigger |
| 16 | +AFTER INSERT ON source |
| 17 | +FOR EACH ROW |
| 18 | +INSERT INTO dest (id) VALUES(NEW.id)// |
| 19 | +CREATE TRIGGER test_trigger_2 |
| 20 | +AFTER INSERT ON dest |
| 21 | +FOR EACH ROW |
| 22 | +INSERT INTO dest_2 (id) VALUES(NEW.id)// |
| 23 | +CREATE PROCEDURE test_procedure (IN id bigint(20)) |
| 24 | +NOT DETERMINISTIC MODIFIES SQL DATA |
| 25 | +BEGIN |
| 26 | +INSERT INTO source VALUES (id), (NULL); |
| 27 | +END;// |
| 28 | +# Insert a row to trigger the AFTER trigger |
| 29 | +INSERT INTO source VALUES (NULL); |
| 30 | +# Insert another row to see the pattern |
| 31 | +INSERT INTO source VALUES (NULL); |
| 32 | +# Test with multi-row insert |
| 33 | +INSERT INTO source VALUES (NULL), (NULL); |
| 34 | +# Test with stored procedure |
| 35 | +CALL test_procedure(NULL); |
| 36 | +# Clean up |
| 37 | +DROP PROCEDURE test_procedure; |
| 38 | +DROP TABLE source, dest, dest_2; |
| 39 | +set global server_audit_logging=off; |
| 40 | +# Wait for audit events to be written |
| 41 | +FOUND 1 /set global server_audit_logging=off/ in server_audit_query_id.log |
| 42 | +TIMESTAMP,HOSTNAME,root,localhost,4,0,QUERY,test,'set global server_audit_logging=on',0 |
| 43 | +TIMESTAMP,HOSTNAME,root,localhost,4,1,QUERY,test,'USE test',0 |
| 44 | +TIMESTAMP,HOSTNAME,root,localhost,4,2,QUERY,test,'CREATE TABLE source (\nid bigint(20) NOT NULL AUTO_INCREMENT,\nPRIMARY KEY (id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4',0 |
| 45 | +TIMESTAMP,HOSTNAME,root,localhost,4,3,QUERY,test,'CREATE TABLE dest (\nid bigint(20) NOT NULL,\nPRIMARY KEY (id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4',0 |
| 46 | +TIMESTAMP,HOSTNAME,root,localhost,4,4,QUERY,test,'CREATE TABLE dest_2 (\nid bigint(20) NOT NULL,\nPRIMARY KEY (id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4',0 |
| 47 | +TIMESTAMP,HOSTNAME,root,localhost,4,5,QUERY,test,'CREATE TRIGGER test_trigger\nAFTER INSERT ON source\nFOR EACH ROW\nINSERT INTO dest (id) VALUES(NEW.id)',0 |
| 48 | +TIMESTAMP,HOSTNAME,root,localhost,4,6,QUERY,test,'CREATE TRIGGER test_trigger_2\nAFTER INSERT ON dest\nFOR EACH ROW\nINSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 49 | +TIMESTAMP,HOSTNAME,root,localhost,4,7,QUERY,test,'CREATE PROCEDURE test_procedure (IN id bigint(20))\nNOT DETERMINISTIC MODIFIES SQL DATA\nBEGIN\nINSERT INTO source VALUES (id), (NULL);\nEND',0 |
| 50 | +TIMESTAMP,HOSTNAME,root,localhost,4,10,QUERY,test,'INSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 51 | +TIMESTAMP,HOSTNAME,root,localhost,4,9,QUERY,test,'INSERT INTO dest (id) VALUES(NEW.id)',0 |
| 52 | +TIMESTAMP,HOSTNAME,root,localhost,4,8,QUERY,test,'INSERT INTO source VALUES (NULL)',0 |
| 53 | +TIMESTAMP,HOSTNAME,root,localhost,4,13,QUERY,test,'INSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 54 | +TIMESTAMP,HOSTNAME,root,localhost,4,12,QUERY,test,'INSERT INTO dest (id) VALUES(NEW.id)',0 |
| 55 | +TIMESTAMP,HOSTNAME,root,localhost,4,11,QUERY,test,'INSERT INTO source VALUES (NULL)',0 |
| 56 | +TIMESTAMP,HOSTNAME,root,localhost,4,16,QUERY,test,'INSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 57 | +TIMESTAMP,HOSTNAME,root,localhost,4,15,QUERY,test,'INSERT INTO dest (id) VALUES(NEW.id)',0 |
| 58 | +TIMESTAMP,HOSTNAME,root,localhost,4,18,QUERY,test,'INSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 59 | +TIMESTAMP,HOSTNAME,root,localhost,4,17,QUERY,test,'INSERT INTO dest (id) VALUES(NEW.id)',0 |
| 60 | +TIMESTAMP,HOSTNAME,root,localhost,4,14,QUERY,test,'INSERT INTO source VALUES (NULL), (NULL)',0 |
| 61 | +TIMESTAMP,HOSTNAME,root,localhost,4,22,QUERY,test,'INSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 62 | +TIMESTAMP,HOSTNAME,root,localhost,4,21,QUERY,test,'INSERT INTO dest (id) VALUES(NEW.id)',0 |
| 63 | +TIMESTAMP,HOSTNAME,root,localhost,4,24,QUERY,test,'INSERT INTO dest_2 (id) VALUES(NEW.id)',0 |
| 64 | +TIMESTAMP,HOSTNAME,root,localhost,4,23,QUERY,test,'INSERT INTO dest (id) VALUES(NEW.id)',0 |
| 65 | +TIMESTAMP,HOSTNAME,root,localhost,4,20,QUERY,test,'INSERT INTO source VALUES ( NAME_CONST(\'id\',NULL)), (NULL)',0 |
| 66 | +TIMESTAMP,HOSTNAME,root,localhost,4,19,QUERY,test,'CALL test_procedure(NULL)',0 |
| 67 | +TIMESTAMP,HOSTNAME,root,localhost,4,25,QUERY,test,'DROP PROCEDURE test_procedure',0 |
| 68 | +TIMESTAMP,HOSTNAME,root,localhost,4,26,QUERY,test,'DROP TABLE source, dest, dest_2',0 |
| 69 | +TIMESTAMP,HOSTNAME,root,localhost,4,27,QUERY,test,'set global server_audit_logging=off',0 |
0 commit comments