在MYSQL上使用通配符授予用户权限

时间:2013-07-16 08:25:47

标签: mysql sql grant

我想为WA_启动的服务器上的所有数据库中的特定用户授予一个select权限,例如在我的服务器中

我制作了以下语法,但它无法正常工作

grant select on `wa\_%`.`mytable` 
to 'myuser'@'localhost' 
identified by '123456';

但它给了我这个错误

  

表wa _%。mytable'不存在

2 个答案:

答案 0 :(得分:3)

MySQL不允许这种类型的授权,如果您授予数据库或全局级别的权限,则只能在数据库名称中包含通配符。请参见5.5手册中的以下内容:

  

在授予全局或数据库级别权限的GRANT语句中指定数据库名称时,允许使用“_”和“%”通配符。

因此,例如,这将起作用,因为您在数据库级别上授予select:

grant select on `wa\_%`.* 
to 'myuser'@'localhost' 
identified by '123456';

在您的示例中,您尝试使用MySQL不支持的通配符架构名称授予对特定表的访问权限。

答案 1 :(得分:-1)

你可以试试这个:

GRANT SELECT ON  `wa\_%` . * TO  'myuser'@'localhost' identified by '123456';