1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
connection node_2;
connection node_1;
CREATE TABLE definer_root (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB;
CREATE TABLE definer_user (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB;
CREATE TABLE definer_current_user (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB;
CREATE TABLE definer_default (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB;
CREATE USER 'user1';
GRANT ALL ON test.* to 'user1';
CREATE DEFINER=root@localhost TRIGGER definer_root BEFORE INSERT ON definer_root FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
CREATE DEFINER=user1 TRIGGER definer_user BEFORE INSERT ON definer_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
CREATE DEFINER=current_user TRIGGER definer_current_user BEFORE INSERT ON definer_current_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
CREATE TRIGGER definer_default BEFORE INSERT ON definer_default FOR EACH ROW SET NEW.trigger_user = CURRENT_USER();
connection node_2;
INSERT INTO definer_root (f1) VALUES (1);
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_root';
DEFINER = 'root@localhost'
1
SELECT trigger_user = 'root@localhost' FROM definer_root;
trigger_user = 'root@localhost'
1
INSERT INTO definer_user (f1) VALUES (1);
SELECT DEFINER = 'user1@%' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_user';
DEFINER = 'user1@%'
1
SELECT trigger_user = 'user1@%' FROM definer_user;
trigger_user = 'user1@%'
1
INSERT INTO definer_current_user (f1) VALUES (1);
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_current_user';
DEFINER = 'root@localhost'
1
SELECT trigger_user = 'root@localhost' FROM definer_current_user;
trigger_user = 'root@localhost'
1
INSERT INTO definer_default (f1) VALUES (1);
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_default';
DEFINER = 'root@localhost'
1
SELECT trigger_user = 'root@localhost' FROM definer_default;
trigger_user = 'root@localhost'
1
connection node_1;
DROP TABLE definer_current_user;
DROP TABLE definer_user;
DROP TABLE definer_root;
DROP TABLE definer_default;
DROP USER 'user1';
|