我使用phpMyAdmin创建了一个新的MySQL用户homestead
,在这样做时,创建了一个具有相同名称的新数据库。如下所示,homestead
被授予两个数据库的权限:homestead
和homestead\_%
。
\_%
表示什么?我后来创建了一个新数据库laravel
,并希望用户homestead
拥有与第一个表相同的权限。我是否还需要向laravel\_%
添加权限?
答案 0 :(得分:2)
%
和_
只是SQL通配符。 GRANT syntax允许他们:
在中指定数据库名称时,允许使用_和%通配符 GRANT语句,在数据库级别授予权限。
您可能会注意到_
已转义(\_
):
如果你想使用
_
字符作为一部分 数据库名称,您应该在GRANT语句中将其指定为\_
阻止用户访问其他数据库 匹配通配符模式;例如,GRANT ...... ON`foo \ _bar`。* TO ....
这显然是一种将权限扩展到以homestead_...