Update after merge to 5.0

parent 20e07141
...@@ -624,6 +624,25 @@ GRANT USAGE ON *.* TO 'mysqltest_7'@'' IDENTIFIED BY PASSWORD '*2FB071A056F9BB74 ...@@ -624,6 +624,25 @@ GRANT USAGE ON *.* TO 'mysqltest_7'@'' IDENTIFIED BY PASSWORD '*2FB071A056F9BB74
drop user mysqltest_7@; drop user mysqltest_7@;
show grants for mysqltest_7@; show grants for mysqltest_7@;
ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host '' ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host ''
create database mysqltest;
use mysqltest;
create table t1(f1 int);
GRANT DELETE ON mysqltest.t1 TO mysqltest1@'%';
GRANT SELECT ON mysqltest.t1 TO mysqltest1@'192.%';
show grants for mysqltest1@'192.%';
Grants for mysqltest1@192.%
GRANT USAGE ON *.* TO 'mysqltest1'@'192.%'
GRANT SELECT ON `mysqltest`.`t1` TO 'mysqltest1'@'192.%'
show grants for mysqltest1@'%';
Grants for mysqltest1@%
GRANT USAGE ON *.* TO 'mysqltest1'@'%'
GRANT DELETE ON `mysqltest`.`t1` TO 'mysqltest1'@'%'
delete from mysql.user where user='mysqltest1';
delete from mysql.db where user='mysqltest1';
delete from mysql.tables_priv where user='mysqltest1';
flush privileges;
drop database mysqltest;
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='';
delete from mysql.user where user=''; delete from mysql.user where user='';
...@@ -834,21 +853,3 @@ insert into mysql.user select * from t2; ...@@ -834,21 +853,3 @@ insert into mysql.user select * from t2;
flush privileges; flush privileges;
drop table t2; drop table t2;
drop table t1; drop table t1;
create database mysqltest;
use mysqltest;
create table t1(f1 int);
GRANT DELETE ON mysqltest.t1 TO mysqltest1@'%';
GRANT SELECT ON mysqltest.t1 TO mysqltest1@'192.%';
show grants for mysqltest1@'192.%';
Grants for mysqltest1@192.%
GRANT USAGE ON *.* TO 'mysqltest1'@'192.%'
GRANT SELECT ON `mysqltest`.`t1` TO 'mysqltest1'@'192.%'
show grants for mysqltest1@'%';
Grants for mysqltest1@%
GRANT USAGE ON *.* TO 'mysqltest1'@'%'
GRANT DELETE ON `mysqltest`.`t1` TO 'mysqltest1'@'%'
delete from mysql.user where user='mysqltest1';
delete from mysql.db where user='mysqltest1';
delete from mysql.tables_priv where user='mysqltest1';
flush privileges;
drop database mysqltest;
...@@ -532,7 +532,7 @@ drop database mysqltest; ...@@ -532,7 +532,7 @@ drop database mysqltest;
# #
# 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 ""
# #
use test;
create table t1 (a int); create table t1 (a int);
# Backup anonymous users and remove them. (They get in the way of # Backup anonymous users and remove them. (They get in the way of
......
...@@ -2273,7 +2273,8 @@ static GRANT_NAME *name_hash_search(HASH *name_hash, ...@@ -2273,7 +2273,8 @@ static GRANT_NAME *name_hash_search(HASH *name_hash,
{ {
if (exact) if (exact)
{ {
if ((host && if (!grant_name->host.hostname ||
(host &&
!my_strcasecmp(system_charset_info, host, !my_strcasecmp(system_charset_info, host,
grant_name->host.hostname)) || grant_name->host.hostname)) ||
(ip && !strcmp(ip, grant_name->host.hostname))) (ip && !strcmp(ip, grant_name->host.hostname)))
...@@ -4956,6 +4957,9 @@ static int handle_grant_struct(uint struct_no, bool drop, ...@@ -4956,6 +4957,9 @@ static int handle_grant_struct(uint struct_no, bool drop,
} }
if (! user) if (! user)
user= ""; user= "";
if (! host)
host= "";
#ifdef EXTRA_DEBUG #ifdef EXTRA_DEBUG
DBUG_PRINT("loop",("scan struct: %u index: %u user: '%s' host: '%s'", DBUG_PRINT("loop",("scan struct: %u index: %u user: '%s' host: '%s'",
struct_no, idx, user, host)); struct_no, idx, user, host));
......
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