Bug #1791 | This bug allows user to create a 2nd database without the rights to do this | ||
---|---|---|---|
Submitted: | 10 Nov 2003 1:16 | Modified: | 11 Nov 2003 0:29 |
Reporter: | Marco Kaiser | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server | Severity: | S1 (Critical) |
Version: | 4.0.15a | OS: | FreeBSD (FreeBSD / Linux) |
Assigned to: | CPU Architecture: | Any |
[10 Nov 2003 1:16]
Marco Kaiser
[10 Nov 2003 9:44]
Paul DuBois
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.mysql.com/documentation/ and the instructions on how to report a bug at http://bugs.mysql.com/how-to-report.php The _ and % are wildcard characters in the Db column of the db table. To specify a literal _ character, precede it with a backslash. See: http://www.mysql.com/doc/en/GRANT.html
[10 Nov 2003 10:41]
Marco Kaiser
Sorry but thisis not a feature, i know the manual and Zak Greant told me to report this bug here. So lemme explain this bug again. If i have a database with a _ in the name an a user with Select and create rights in the mysql.db table this user can create a 2nd DB. I can give login/passwords for a example database if required.
[11 Nov 2003 0:29]
Zak Greant
Hi Marco, The user has the CREATE privilege for 'test_db'. They are allowed to create databases of the form 'test{any single character here}db'. This behavior is even mentioned in the manual. From http://www.mysql.com/doc/en/GRANT.html: "Please note: the `_' and `%' wildcards are allowed when specifying database names in GRANT commands. This means that if you wish to use for instance a `_' character as part of a database name, you should specify it as `\_' in the GRANT command, to prevent the user from being able to access additional databases matching the wildcard pattern, for example, GRANT ... ON `foo\_bar`.* TO ...." Cheers! --zak