From 4dae0e03076f54d32bcdf005b58c3feb22623be7 Mon Sep 17 00:00:00 2001 From: Jon Olav Hauglid Date: Fri, 9 Oct 2009 11:57:55 +0200 Subject: [PATCH] Bug #25863 No database selected error, but documentation says * for global allowed The current behaviour of 'GRANT *' was changed as a part of the fix for Bug#19022, Bug#17199 and Bug#18444. To avoid regression, we keep the current behavior and update the documentation. Test case added to grant.test. --- mysql-test/r/grant.result | 23 +++++++++++++++++++++++ mysql-test/t/grant.test | 29 +++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index a677d71b266..19ad55dfc6f 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -1413,3 +1413,26 @@ DROP USER 'user1'; DROP USER 'user1'@'localhost'; DROP USER 'user2'; DROP DATABASE db1; +# +# Bug #25863 No database selected error, but documentation +# says * for global allowed +# +GRANT ALL ON * TO mysqltest_1; +ERROR 3D000: No database selected +GRANT ALL ON *.* TO mysqltest_1; +SHOW GRANTS FOR mysqltest_1; +Grants for mysqltest_1@% +GRANT ALL PRIVILEGES ON *.* TO 'mysqltest_1'@'%' +DROP USER mysqltest_1; +USE test; +GRANT ALL ON * TO mysqltest_1; +SHOW GRANTS FOR mysqltest_1; +Grants for mysqltest_1@% +GRANT USAGE ON *.* TO 'mysqltest_1'@'%' +GRANT ALL PRIVILEGES ON `test`.* TO 'mysqltest_1'@'%' +DROP USER mysqltest_1; +GRANT ALL ON *.* TO mysqltest_1; +SHOW GRANTS FOR mysqltest_1; +Grants for mysqltest_1@% +GRANT ALL PRIVILEGES ON *.* TO 'mysqltest_1'@'%' +DROP USER mysqltest_1; diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test index bcd393bd6ab..6cf43620c1a 100644 --- a/mysql-test/t/grant.test +++ b/mysql-test/t/grant.test @@ -1525,5 +1525,34 @@ DROP USER 'user1'@'localhost'; DROP USER 'user2'; DROP DATABASE db1; + +--echo # +--echo # Bug #25863 No database selected error, but documentation +--echo # says * for global allowed +--echo # + +connect(conn1,localhost,root,,*NO-ONE*); + +--error ER_NO_DB_ERROR +GRANT ALL ON * TO mysqltest_1; + +GRANT ALL ON *.* TO mysqltest_1; +SHOW GRANTS FOR mysqltest_1; +DROP USER mysqltest_1; + +USE test; + +GRANT ALL ON * TO mysqltest_1; +SHOW GRANTS FOR mysqltest_1; +DROP USER mysqltest_1; + +GRANT ALL ON *.* TO mysqltest_1; +SHOW GRANTS FOR mysqltest_1; +DROP USER mysqltest_1; + +connection default; +disconnect conn1; + + # Wait till we reached the initial number of concurrent sessions --source include/wait_until_count_sessions.inc