Bug #53613: mysql_upgrade incorrectly revokes TRIGGER privilege on given table
Fixed an incomplete historical ALTER TABLE MODIFY trimming the trigger privilege bit from mysql.tables_priv.Table_priv column. Removed the duplicate ALTER TABLE MODIFY. Test suite added.
This commit is contained in:
parent
3e1a470705
commit
279b3adfc7
@ -169,3 +169,45 @@ DROP PROCEDURE testproc;
|
|||||||
WARNING: NULL values of the 'character_set_client' column ('mysql.proc' table) have been updated with a default value (latin1). Please verify if necessary.
|
WARNING: NULL values of the 'character_set_client' column ('mysql.proc' table) have been updated with a default value (latin1). Please verify if necessary.
|
||||||
WARNING: NULL values of the 'collation_connection' column ('mysql.proc' table) have been updated with a default value (latin1_swedish_ci). Please verify if necessary.
|
WARNING: NULL values of the 'collation_connection' column ('mysql.proc' table) have been updated with a default value (latin1_swedish_ci). Please verify if necessary.
|
||||||
WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been updated with default values. Please verify if necessary.
|
WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been updated with default values. Please verify if necessary.
|
||||||
|
#
|
||||||
|
# Bug #53613: mysql_upgrade incorrectly revokes
|
||||||
|
# TRIGGER privilege on given table
|
||||||
|
#
|
||||||
|
GRANT USAGE ON *.* TO 'user3'@'%';
|
||||||
|
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
|
||||||
|
Run mysql_upgrade with all privileges on a user
|
||||||
|
mtr.global_suppressions OK
|
||||||
|
mtr.test_suppressions OK
|
||||||
|
mysql.columns_priv OK
|
||||||
|
mysql.db OK
|
||||||
|
mysql.event OK
|
||||||
|
mysql.func OK
|
||||||
|
mysql.general_log
|
||||||
|
Error : You can't use locks with log tables.
|
||||||
|
status : OK
|
||||||
|
mysql.help_category OK
|
||||||
|
mysql.help_keyword OK
|
||||||
|
mysql.help_relation OK
|
||||||
|
mysql.help_topic OK
|
||||||
|
mysql.host OK
|
||||||
|
mysql.ndb_binlog_index OK
|
||||||
|
mysql.plugin OK
|
||||||
|
mysql.proc OK
|
||||||
|
mysql.procs_priv OK
|
||||||
|
mysql.servers OK
|
||||||
|
mysql.slow_log
|
||||||
|
Error : You can't use locks with log tables.
|
||||||
|
status : OK
|
||||||
|
mysql.tables_priv OK
|
||||||
|
mysql.time_zone OK
|
||||||
|
mysql.time_zone_leap_second OK
|
||||||
|
mysql.time_zone_name OK
|
||||||
|
mysql.time_zone_transition OK
|
||||||
|
mysql.time_zone_transition_type OK
|
||||||
|
mysql.user OK
|
||||||
|
SHOW GRANTS FOR 'user3'@'%';
|
||||||
|
Grants for user3@%
|
||||||
|
GRANT USAGE ON *.* TO 'user3'@'%'
|
||||||
|
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%'
|
||||||
|
DROP USER 'user3'@'%';
|
||||||
|
End of 5.1 tests
|
||||||
|
@ -108,3 +108,19 @@ CALL testproc();
|
|||||||
DROP PROCEDURE testproc;
|
DROP PROCEDURE testproc;
|
||||||
--cat_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
--cat_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
||||||
--remove_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
--remove_file $MYSQLTEST_VARDIR/tmp/41569.txt
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #53613: mysql_upgrade incorrectly revokes
|
||||||
|
--echo # TRIGGER privilege on given table
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
GRANT USAGE ON *.* TO 'user3'@'%';
|
||||||
|
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
|
||||||
|
--echo Run mysql_upgrade with all privileges on a user
|
||||||
|
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||||
|
SHOW GRANTS FOR 'user3'@'%';
|
||||||
|
|
||||||
|
DROP USER 'user3'@'%';
|
||||||
|
|
||||||
|
--echo End of 5.1 tests
|
||||||
|
@ -58,7 +58,7 @@ ALTER TABLE tables_priv
|
|||||||
COLLATE utf8_general_ci DEFAULT '' NOT NULL,
|
COLLATE utf8_general_ci DEFAULT '' NOT NULL,
|
||||||
MODIFY Table_priv set('Select','Insert','Update','Delete','Create',
|
MODIFY Table_priv set('Select','Insert','Update','Delete','Create',
|
||||||
'Drop','Grant','References','Index','Alter',
|
'Drop','Grant','References','Index','Alter',
|
||||||
'Create View','Show view')
|
'Create View','Show view','Trigger')
|
||||||
COLLATE utf8_general_ci DEFAULT '' NOT NULL,
|
COLLATE utf8_general_ci DEFAULT '' NOT NULL,
|
||||||
COMMENT='Table privileges';
|
COMMENT='Table privileges';
|
||||||
|
|
||||||
@ -584,8 +584,6 @@ ALTER TABLE host MODIFY Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAU
|
|||||||
ALTER TABLE db ADD Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL;
|
ALTER TABLE db ADD Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL;
|
||||||
ALTER TABLE db MODIFY Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL;
|
ALTER TABLE db MODIFY Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL;
|
||||||
|
|
||||||
ALTER TABLE tables_priv MODIFY Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') COLLATE utf8_general_ci DEFAULT '' NOT NULL;
|
|
||||||
|
|
||||||
UPDATE user SET Trigger_priv=Super_priv WHERE @hadTriggerPriv = 0;
|
UPDATE user SET Trigger_priv=Super_priv WHERE @hadTriggerPriv = 0;
|
||||||
|
|
||||||
# Activate the new, possible modified privilege tables
|
# Activate the new, possible modified privilege tables
|
||||||
|
Loading…
x
Reference in New Issue
Block a user