112
112
sync_slave_with_master;
114
114
show grants for rpl_do_grant2@localhost;
116
#####################################################
118
# Test whether mysql.procs_priv get replicated
120
# BUG42217 mysql.procs_priv does not get replicated
121
#####################################################
125
DROP DATABASE IF EXISTS bug42217_db;
127
CREATE DATABASE bug42217_db;
129
GRANT CREATE ROUTINE ON bug42217_db.* TO 'create_rout_db'@'localhost'
130
IDENTIFIED BY 'create_rout_db' WITH GRANT OPTION;
132
connect (create_rout_db_master, localhost, create_rout_db, create_rout_db, bug42217_db,$MASTER_MYPORT,);
133
connect (create_rout_db_slave, localhost, create_rout_db, create_rout_db, bug42217_db, $SLAVE_MYPORT,);
135
connection create_rout_db_master;
141
CREATE FUNCTION upgrade_del_func() RETURNS CHAR(30)
143
RETURN "INSIDE upgrade_del_func()";
152
SELECT * FROM mysql.procs_priv;
153
SELECT upgrade_del_func();
155
sync_slave_with_master;
157
SELECT * FROM mysql.procs_priv;
158
SHOW GRANTS FOR 'create_rout_db'@'localhost';
161
SHOW CREATE FUNCTION upgrade_del_func;
162
SELECT upgrade_del_func();
164
--echo "Check whether the definer user will be able to execute the replicated routine on slave"
165
connection create_rout_db_slave;
167
SHOW CREATE FUNCTION upgrade_del_func;
168
SELECT upgrade_del_func();
171
DELETE FROM mysql.procs_priv;
174
--echo "Can't execute the replicated routine on slave like before after procs privilege is deleted "
176
SELECT upgrade_del_func();
178
--echo "Test the user who creates a function on master doesn't exist on slave."
179
--echo "Hence SQL thread ACL_GLOBAL privilege jumps in and no mysql.procs_priv is inserted"
180
DROP USER 'create_rout_db'@'localhost';
182
connection create_rout_db_master;
184
CREATE FUNCTION upgrade_alter_func() RETURNS CHAR(30)
186
RETURN "INSIDE upgrade_alter_func()";
191
SELECT upgrade_alter_func();
193
sync_slave_with_master;
194
SHOW CREATE FUNCTION upgrade_alter_func;
195
--echo "Should no privilege record for upgrade_alter_func in mysql.procs_priv"
197
SELECT * FROM mysql.procs_priv;
199
SELECT upgrade_alter_func();
201
###### CLEAN UP SECTION ##############
202
disconnect create_rout_db_master;
203
disconnect create_rout_db_slave;
206
DROP FUNCTION upgrade_del_func;
207
DROP FUNCTION upgrade_alter_func;
208
DROP DATABASE bug42217_db;
209
DROP USER 'create_rout_db'@'localhost';