【问题标题】:GRANT on db with a separator in name not working名称中带有分隔符的 db 上的 GRANT 不起作用
【发布时间】:2022-01-13 20:48:58
【问题描述】:

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

我在写:GRANT ALL PRIVILEGES ON extranet-agricoop.* TO 'agricoop'@'localhost'; 我收到错误消息:“您的 SQL 语法 [...] 在第 1 行的 'extranet-agricoop.* TO 'agricoop'@'localhost'' 附近有错误”

它适用于我在其他桌子上的其他用户,但不适用于那个。如果我选择“*.*”,它可以工作,所以对我来说问题似乎来自数据库的名称。我试图逃脱分隔符,但仍然无法正常工作。

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

【问题讨论】:

    标签: database server mariadb debian mariasql


    【解决方案1】:

    如果标识符包含一个或多个不属于 [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

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2019-01-18
      • 2016-08-16
      • 1970-01-01
      • 2012-05-12
      • 2017-12-17
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多