我能否使用以下语句 GRANT ALL PRIVILEGES ON a*.* TO 'my_user'@'%' WITH GRANT OPTION;
?
我只想让用户访问以"my_prefix_"开头的所有数据库,但不能访问例如"mysql"这样的数据库。
我能否使用以下语句 GRANT ALL PRIVILEGES ON a*.* TO 'my_user'@'%' WITH GRANT OPTION;
?
我只想让用户访问以"my_prefix_"开头的所有数据库,但不能访问例如"mysql"这样的数据库。
可以的。
当我创建一个名为jaap
的用户,并使用选项Grant all privileges on wildcard name (username\_%)
时,这就是phpMyAdmin所做的事情:
GRANT ALL PRIVILEGES ON `jaap\_%` . * TO 'jaap'@'localhost';
这就是你的意思,对吧?
附言
正如你所看到的,_
被转义了,因为在(My)SQL中,未转义的_
表示“一个字符”。(就像正则表达式中的.
一样。)在这种情况下,你想要_
是字面值,所以数据库名称必须以jaap_
开头。