GRANT声明中的通配符?

时间:2009-10-05 05:08:06

标签: sql mysql

以下操作符合预期:

GRANT ALL ON *.* to 'someuser'@'%' identified by 'somepass';

我可以在数据库名称中使用通配符,如:

GRANT ALL ON someDB*.* to 'someuser'@'%' identified by 'somepass';

2 个答案:

答案 0 :(得分:3)

来自MySQL 5.1 documentation

  

允许使用“_”和“%”通配符   在中指定数据库名称时   授予权限的GRANT语句   在全球或数据库级别。这个   例如,如果你想要的话   使用“_”字符作为一部分   数据库名称,您应该指定它   作为GRANT语句中的“\ _”,到   阻止用户能够   访问其他数据库匹配   通配模式;例如,   GRANT ......在'foo \ _bar'。* TO ....

答案 1 :(得分:1)

您可以使用此代码:

GRANT ALL ON `someDB_%`.* TO 'someuser'@'%' IDENTIFIED BY 'somepass';

您必须使用“`”作为字符来指定数据库名称上的通配符。