diff --git a/mysql-test/r/grant2.result b/mysql-test/r/grant2.result new file mode 100644 index 00000000000..1586375c7d8 --- /dev/null +++ b/mysql-test/r/grant2.result @@ -0,0 +1,24 @@ +delete from mysql.user where user like 'mysqltest\_%'; +delete from mysql.db where user like 'mysqltest\_%'; +flush privileges; +grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option; +select current_user(); +current_user() +mysqltest_1@localhost +grant all privileges on `my\_1`.* to mysqltest_9@localhost with grant option; +ERROR 42000: Access denied for user: 'mysqltest_1@localhost' to database 'my\_1' +grant all privileges on `my_%`.* to mysqltest_2@localhost with grant option; +select current_user(); +current_user() +mysqltest_2@localhost +grant all privileges on `mysql`.* to mysqltest_3@localhost with grant option; +select current_user(); +current_user() +mysqltest_3@localhost +show grants for mysqltest_3@localhost; +Grants for mysqltest_3@localhost +GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost' +GRANT ALL PRIVILEGES ON `mysql`.* TO 'mysqltest_3'@'localhost' WITH GRANT OPTION +delete from mysql.user where user like 'mysqltest\_%'; +delete from mysql.db where user like 'mysqltest\_%'; +flush privileges; diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test new file mode 100644 index 00000000000..d1535fa17a9 --- /dev/null +++ b/mysql-test/t/grant2.test @@ -0,0 +1,37 @@ +# +# GRANT tests that require several connections +# (usually it's GRANT, reconnect as another user, try something) +# + + +# +# wild_compare fun +# + +delete from mysql.user where user like 'mysqltest\_%'; +delete from mysql.db where user like 'mysqltest\_%'; +flush privileges; +grant all privileges on `my\_%`.* to mysqltest_1@localhost with grant option; +connect (user1,localhost,mysqltest_1,,); +connection user1; +select current_user(); +--error 1044 +grant all privileges on `my\_1`.* to mysqltest_9@localhost with grant option; +grant all privileges on `my_%`.* to mysqltest_2@localhost with grant option; +disconnect user1; +connect (user2,localhost,mysqltest_2,,); +connection user2; +select current_user(); +grant all privileges on `mysql`.* to mysqltest_3@localhost with grant option; +disconnect user2; +connect (user3,localhost,mysqltest_3,,); +connection user3; +select current_user(); +show grants for mysqltest_3@localhost; +disconnect user3; +connect (root,localhost,root,,); +connection root; +delete from mysql.user where user like 'mysqltest\_%'; +delete from mysql.db where user like 'mysqltest\_%'; +flush privileges; +