# Bug#35005 Possible security flaw around trigger privileges # Derivate of is_triggers.test --disable_warnings DROP DATABASE IF EXISTS db_datadict1; DROP DATABASE IF EXISTS db_datadict2; --enable_warnings CREATE DATABASE db_datadict1; CREATE DATABASE db_datadict2; --error 0,ER_CANNOT_USER DROP USER 'user4'@'localhost'; CREATE USER 'user4'@'localhost'; GRANT ALL ON test.* TO 'user4'@'localhost'; GRANT TRIGGER ON db_datadict1.* TO 'user4'@'localhost'; CREATE TABLE db_datadict1.t1 (f1 INT, f2 INT); CREATE TABLE db_datadict2.t1 (f1 INT, f2 INT); USE db_datadict1; CREATE TRIGGER trg1 AFTER UPDATE ON db_datadict1.t1 FOR EACH ROW UPDATE db_datadict2.t1 SET f1 = new.f1, f2 = new.f2; USE db_datadict2; CREATE TRIGGER trg1 AFTER UPDATE ON db_datadict2.t1 FOR EACH ROW UPDATE db_datadict1.t1 SET f1 = new.f1, f2 = new.f2; --echo # Establish connection user4 (user=user4) --replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK connect (user4, localhost, user4, , test); --disable_abort_on_error SHOW GRANTS FOR 'user4'@'localhost'; SHOW TABLES FROM db_datadict1; SHOW TABLES FROM db_datadict2; SHOW CREATE TABLE db_datadict1.t1; SHOW CREATE TABLE db_datadict2.t1; SHOW COLUMNS FROM db_datadict1.t1; SHOW COLUMNS FROM db_datadict2.t1; SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema LIKE 'db_datadict%'; SELECT table_schema,table_name,column_name FROM information_schema.columns WHERE table_schema LIKE 'db_datadict%'; SELECT * FROM db_datadict1.t1; SELECT * FROM db_datadict2.t1; --vertical_results SHOW TRIGGERS FROM db_datadict1; SHOW TRIGGERS FROM db_datadict2; SHOW CREATE TRIGGER db_datadict1.trg1; SHOW CREATE TRIGGER db_datadict2.trg1; SELECT event_object_schema,event_object_table,action_statement FROM information_schema.triggers WHERE trigger_name = 'trg1'; connection default; DROP DATABASE db_datadict1; DROP DATABASE db_datadict2; DROP USER 'user4'@'localhost';