用于授予权限的MySQL通配符之间的区别

时间:2013-10-08 01:40:25

标签: mysql database grant database-permissions

向用户授予权限时,用户名/主机字段中*%Any之间的区别是什么,以及它们的组合有何不同?

例如:

GRANT ALL PRIVILEGES ON db.* TO '*'@'Any';

这与

相同
GRANT ALL PRIVILEGES ON db.* TO 'Any'@'%';

编辑:我想到的Any字段来自phpMyAdmin。也许这意味着不同的东西?我在下面贴了一个截图来说明我的意思。

User permissions in phpMyAdmin

1 个答案:

答案 0 :(得分:1)

“any”这个词没有特别的含义。

MySQL不支持用户名中的通配符,因此第一个示例是非法的。要从名为any的主机向匿名用户授予权限,请使用:

GRANT ALL PRIVILEGES ON db.* TO ''@'Any';

第二个例子是合法的,但是它向可以从任何主机连接的名为“any”的用户授予权限。