Commit 842cbb01 authored by unknown's avatar unknown

Merge mysql.com:/home/ram/work/mysql-5.0-maint

into  mysql.com:/home/ram/work/b27515/b27515.5.0


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/sql_parse.cc:
  Auto merged
parents 6b2685b6 3aea34b4
...@@ -657,6 +657,17 @@ delete from mysql.db where user='mysqltest1'; ...@@ -657,6 +657,17 @@ delete from mysql.db where user='mysqltest1';
delete from mysql.tables_priv where user='mysqltest1'; delete from mysql.tables_priv where user='mysqltest1';
flush privileges; flush privileges;
drop database mysqltest; 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
use test; use test;
create table t1 (a int); create table t1 (a int);
create table t2 as select * from mysql.user where user=''; create table t2 as select * from mysql.user where user='';
......
...@@ -540,7 +540,28 @@ delete from mysql.tables_priv where user='mysqltest1'; ...@@ -540,7 +540,28 @@ delete from mysql.tables_priv where user='mysqltest1';
flush privileges; flush privileges;
drop database mysqltest; 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
# #
# Bug #16297 In memory grant tables not flushed when users's hostname is "" # Bug #16297 In memory grant tables not flushed when users's hostname is ""
......
...@@ -3263,7 +3263,7 @@ mysql_execute_command(THD *thd) ...@@ -3263,7 +3263,7 @@ mysql_execute_command(THD *thd)
*/ */
old_list= table[0]; old_list= table[0];
new_list= table->next_local[0]; new_list= table->next_local[0];
if (check_grant(thd, ALTER_ACL, &old_list, 0, 1, 0) || if (check_grant(thd, ALTER_ACL | DROP_ACL, &old_list, 0, 1, 0) ||
(!test_all_bits(table->next_local->grant.privilege, (!test_all_bits(table->next_local->grant.privilege,
INSERT_ACL | CREATE_ACL) && INSERT_ACL | CREATE_ACL) &&
check_grant(thd, INSERT_ACL | CREATE_ACL, &new_list, 0, 1, 0))) check_grant(thd, INSERT_ACL | CREATE_ACL, &new_list, 0, 1, 0)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment