GRANT on db with a separator in name 不起作用

GRANT on db with a separator in name not working

我在装有 MariaDB 的 Debian 服务器上遇到问题。 我正在尝试向名为 extranet-agricoop 的数据库上的用户 ('agricoop') 授予所有权限。

我正在写:授予 extranet-agricoop 上的所有权限。* 到 'agricoop'@'localhost'; 我收到错误消息:“您的 SQL 语法错误 [...] 靠近 'extranet-agricoop.* TO 'agricoop'@'localhost'' 第 1 行”

它对其他 table 上的其他用户有效,但对那个用户无效。如果我 select ‘*.*’ 它有效,所以对我来说问题似乎来自数据库的名称。我试图转义分隔符但仍然无法正常工作。

你有什么想法吗? 谢谢:)

如果标识符包含一个或多个不属于 [a-z,A-Z,0-9,$,_] 的字符(或者不是 unicode 字符 > 0x0080),则必须用引号引起来。

如果设置了sql_mode ANSI_QUOTES,则必须使用双引号("),如果sql_mode是MSSQL,则必须使用方括号([..])。

示例:

GRANT ALL ON `better-use-dash-than-minus`.* TO foo@localhost