Loading mysql-test/r/grant.result +11 −0 Original line number Diff line number Diff line Loading @@ -492,3 +492,14 @@ delete from mysql.db where user='mysqltest1'; delete from mysql.tables_priv where user='mysqltest1'; flush privileges; drop database mysqltest; create database db27515; use db27515; create table t1 (a int); grant alter on db27515.t1 to user27515@localhost; grant insert, create on db27515.t2 to user27515@localhost; rename table t1 to t2; ERROR 42000: DROP command denied to user 'user27515'@'localhost' for table 't1' revoke all privileges, grant option from user27515@localhost; drop user user27515@localhost; drop database db27515; End of 4.1 tests mysql-test/t/grant.test +22 −1 Original line number Diff line number Diff line Loading @@ -451,4 +451,25 @@ delete from mysql.tables_priv where user='mysqltest1'; flush privileges; drop database mysqltest; # End of 4.1 tests # # Bug #27515: DROP previlege is not required for RENAME TABLE # connection master; create database db27515; use db27515; create table t1 (a int); grant alter on db27515.t1 to user27515@localhost; grant insert, create on db27515.t2 to user27515@localhost; connect (conn27515, localhost, user27515, , db27515); connection conn27515; --error 1142 rename table t1 to t2; disconnect conn27515; connection master; revoke all privileges, grant option from user27515@localhost; drop user user27515@localhost; drop database db27515; --echo End of 4.1 tests sql/sql_parse.cc +1 −1 Original line number Diff line number Diff line Loading @@ -2818,7 +2818,7 @@ mysql_execute_command(THD *thd) old_list=table[0]; new_list=table->next[0]; old_list.next=new_list.next=0; if (check_grant(thd, ALTER_ACL, &old_list, 0, UINT_MAX, 0) || if (check_grant(thd, ALTER_ACL | DROP_ACL, &old_list, 0, UINT_MAX, 0) || (!test_all_bits(table->next->grant.privilege, INSERT_ACL | CREATE_ACL) && check_grant(thd, INSERT_ACL | CREATE_ACL, &new_list, 0, Loading Loading
mysql-test/r/grant.result +11 −0 Original line number Diff line number Diff line Loading @@ -492,3 +492,14 @@ delete from mysql.db where user='mysqltest1'; delete from mysql.tables_priv where user='mysqltest1'; flush privileges; drop database mysqltest; create database db27515; use db27515; create table t1 (a int); grant alter on db27515.t1 to user27515@localhost; grant insert, create on db27515.t2 to user27515@localhost; rename table t1 to t2; ERROR 42000: DROP command denied to user 'user27515'@'localhost' for table 't1' revoke all privileges, grant option from user27515@localhost; drop user user27515@localhost; drop database db27515; End of 4.1 tests
mysql-test/t/grant.test +22 −1 Original line number Diff line number Diff line Loading @@ -451,4 +451,25 @@ delete from mysql.tables_priv where user='mysqltest1'; flush privileges; drop database mysqltest; # End of 4.1 tests # # Bug #27515: DROP previlege is not required for RENAME TABLE # connection master; create database db27515; use db27515; create table t1 (a int); grant alter on db27515.t1 to user27515@localhost; grant insert, create on db27515.t2 to user27515@localhost; connect (conn27515, localhost, user27515, , db27515); connection conn27515; --error 1142 rename table t1 to t2; disconnect conn27515; connection master; revoke all privileges, grant option from user27515@localhost; drop user user27515@localhost; drop database db27515; --echo End of 4.1 tests
sql/sql_parse.cc +1 −1 Original line number Diff line number Diff line Loading @@ -2818,7 +2818,7 @@ mysql_execute_command(THD *thd) old_list=table[0]; new_list=table->next[0]; old_list.next=new_list.next=0; if (check_grant(thd, ALTER_ACL, &old_list, 0, UINT_MAX, 0) || if (check_grant(thd, ALTER_ACL | DROP_ACL, &old_list, 0, UINT_MAX, 0) || (!test_all_bits(table->next->grant.privilege, INSERT_ACL | CREATE_ACL) && check_grant(thd, INSERT_ACL | CREATE_ACL, &new_list, 0, Loading