This is documented behavior <http://www.mysql.com/doc/en/GRANT.html>:

Please note: the `_' and `%' wildcards are allowed when specifying
database names in GRANT statements that grant privileges at the global
or database levels. 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 ....

Michael


Bostjan Skufca (at) domenca.com wrote:
Hello

I am using MySQL 4.0.18 and i have come accross weird behaviour.

I created the databas and user like this:
CREATE DATABASE dev_project;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON dev_project.* TO [EMAIL PROTECTED] IDENTIFIED BY "somepass";
FLUSH PRIVILEGES;


So, user has all privileges set in mysql.db table (except Grant_priv) an absolutely none set in mysql.user table. So far so good.

BUT:

when i log into mysql as that fresh user I cat do
CREATE DATABASE `dev?project`;
CREATE DATABASE `dev-project`;
CREATE DATABASE `devaproject`;
CREATE DATABASE `devbproject`;
CREATE DATABASE `devcproject`;
etc...

AND!

USE devaproject;

AND!!

CREATE TABLE test (id int not null);
INSERT INTO test SET id=1;
SELECT * FROM test;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)


Now am I missing something - is this by design? or it is a bug in MySQL grant system?




Best regards,

Bostjan Skufca
system administrator

Domenca d.o.o. Phone: +386 4 5835444
Fax: +386 4 5831999
http://www.domenca.com





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to