【问题标题】:My SQL set permissionsMysql设置权限
【发布时间】:2017-07-12 23:53:07
【问题描述】:

我在一个 mysql 数据库上设置了一个权限:

GRANT SELECT ON 'Whats-uav-u-100176'.* to "wvico-zag-u-100787"

但我收到此错误:

‍‍#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“Whats-uav-u-100176”附近使用正确的语法。* 到“wvico-zag-u-100787”'

如何解决这个问题?

【问题讨论】:

  • 您的意思是GRANT ALL 而不是GRANT SELECT
  • 不,我不希望该用户进行任何编辑,只需选择
  • 查看用户的授权SELECT sql_grants FROM common_schema.sql_show_grants WHERE user='app';

标签: mysql permissions mysql-error-1064


【解决方案1】:

对 GRANT 使用 SELECT 选项我认为您需要指明列列表

GRANT SELECT (column_list) ON 'Whats-uav-u-100176'.* to "wvico-zag-u-100787"

【讨论】:

  • Nope my host sent 这是您需要运行的 SQL 查询:GRANT SELECT, INSERT, UPDATE, DELETE ON DATABASE.* to "USERNAME" 但我不希望这个用户更新等.
【解决方案2】:
GRANT SELECT ON Whats-uav-u-100176.* TO wvico-zag-u-100787@'%' IDENTIFIED BY 'password';

如果您想要多个访问权限。

GRANT SELECT, INSERT, DELETE ON Whats-uav-u-100176.* TO wvico-zag-u-100787@'%' IDENTIFIED BY 'password';

【讨论】:

    【解决方案3】:

    语法没有问题,除非您的服务器上的 SQL_MODE 设置为 ANSI_QUOTES。

    ANSI_QUOTES

    " 视为标识符引号字符(如`引号字符) 而不是作为字符串引号字符。你仍然可以使用`来引用 启用此模式的标识符。启用 ANSI_QUOTES 后,您 不能使用双引号来引用文字字符串,因为它 被解释为标识符。

    试试单引号

    GRANT SELECT ON 'Whats-uav-u-100176'.* to 'wvico-zag-u-100787'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      相关资源
      最近更新 更多