grant.result, grant.test, sql_acl.cc:

  Fix for a bug #878
parent e5b841e3
......@@ -100,6 +100,26 @@ GRANT SELECT, REFERENCES, REFERENCES (a) ON `test`.`t1` TO 'mysqltest_1'@'localh
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
table_priv column_priv
Select,References References
grant all on test.* to user1@localhost with grant option;
revoke all on test.* from user1@localhost;
show grants for user1@localhost;
Grants for user1@localhost
GRANT USAGE ON *.* TO 'user1'@'localhost'
GRANT USAGE ON `test`.* TO 'user1'@'localhost' WITH GRANT OPTION
revoke grant option on test.* from user1@localhost;
show grants for user1@localhost;
Grants for user1@localhost
GRANT USAGE ON *.* TO 'user1'@'localhost'
grant all on test.t1 to user2@localhost with grant option;
revoke all on test.t1 from user2@localhost;
show grants for user2@localhost;
Grants for user2@localhost
GRANT USAGE ON *.* TO 'user2'@'localhost'
GRANT USAGE ON `test`.`t1` TO 'user2'@'localhost' WITH GRANT OPTION
revoke grant option on test.t1 from user2@localhost;
show grants for user2@localhost;
Grants for user2@localhost
GRANT USAGE ON *.* TO 'user2'@'localhost'
delete from mysql.user where user='mysqltest_1';
delete from mysql.db where user='mysqltest_1';
delete from mysql.tables_priv where user='mysqltest_1';
......
......@@ -66,6 +66,16 @@ REVOKE insert,insert (a) on t1 from mysqltest_1@localhost;
GRANT references on t1 to mysqltest_1@localhost;
show grants for mysqltest_1@localhost;
select table_priv,column_priv from mysql.tables_priv where user="mysqltest_1";
grant all on test.* to user1@localhost with grant option;
revoke all on test.* from user1@localhost;
show grants for user1@localhost;
revoke grant option on test.* from user1@localhost;
show grants for user1@localhost;
grant all on test.t1 to user2@localhost with grant option;
revoke all on test.t1 from user2@localhost;
show grants for user2@localhost;
revoke grant option on test.t1 from user2@localhost;
show grants for user2@localhost;
delete from mysql.user where user='mysqltest_1';
delete from mysql.db where user='mysqltest_1';
delete from mysql.tables_priv where user='mysqltest_1';
......
......@@ -3049,6 +3049,8 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
if (test_all_bits(table_access, (TABLE_ACLS & ~GRANT_ACL)))
global.append("ALL PRIVILEGES",14);
else if (!(table_access & ~GRANT_ACL))
global.append("USAGE",5);
else
{
int found= 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