限制用户的服务器资源时出错

时间:2019-05-25 18:28:25

标签: mysql

当我尝试使用GRANT命令限制用户的服务器资源时,出现错误

mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank';
Query OK, 0 rows affected (0.06 sec)

mysql> GRANT ALL ON customer.* TO 'francis'@'localhost'
    ->          WITH MAX_QUERIES_PER_HOUR 20
    ->             MAX_UPDATES_PER_HOUR 10
    ->              MAX_CONNECTIONS_PER_HOUR 5
    ->               MAX_USER_CONNECTIONS 2;
  

错误1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册以获取在'MAX_QUERIES_PER_HOUR 20附近使用的正确语法               MAX_UPDATES_PER_HOUR 10                MAX_CON'位于第2行

但没有批准它的工作:

mysql> DROP USER 'francis'@'localhost';
Query OK, 0 rows affected (0.07 sec)
mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank'
    -> WITH MAX_QUERIES_PER_HOUR 20;
Query OK, 0 rows affected (0.10 sec)

我的代码中有错误吗?

1 个答案:

答案 0 :(得分:2)

听起来像您尝试在8.0版上运行针对5.7版的代码。

GRANT中指定资源选项的可能性在5.7版之前可用,但在8.0版中已删除。

pointer-interconvertiblethe documentation of 5.7进行比较-请注意,文档5.7版本中的resource_option选项令牌在8.0版本中缺失。

5.7:

GRANT
  ...
  [WITH {GRANT OPTION | resource_option} ...]

8.0:

GRANT
  ...
  [WITH GRANT OPTION]

要更改现有帐户的非特权特征(即资源选项),必须在8.0及更高版本中使用ALTER USER。或者,您也可以像以前一样将其包含在新帐户的CREATE USER语句中。