在数据库名称中使用破折号授予用户访问 mysql 的权限

hoo*_*enz 10 mysql permissions

不幸的是,我有一个带有破折号的数据库名称。当 mysql 报告语法错误时,如何授予对该数据库的访问权限。

例如

GRANT SELECT,INSERT,UPDATE,DELETE ON astpp.* TO 'portal'@'localhost'
IDENTIFIED BY 'Ab7g12Xh35' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

有效,但是

GRANT SELECT,INSERT,UPDATE,DELETE ON astpp-eth01.* TO 'portal'@'localhost'
IDENTIFIED BY 'Ab7g12Xh35' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

才不是。

也没有:

GRANT SELECT,INSERT,UPDATE,DELETE ON 'astpp-eth01'.* TO 'portal'@'localhost'
IDENTIFIED BY 'Ab7g12Xh35' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

Zor*_*che 23

在 mysql 上,除非您启用了 ANSI_QUOTES,否则您使用反引号字符转义数据库列名。请参阅http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

尝试使用这样的命令。

grant select,insert,update,delete on `astpp-eth01`.* to 'portal'@'localhost' identified by 'Ab7g12Xh35' with grant option;
Run Code Online (Sandbox Code Playgroud)