尝试授予mariadb用户权限

时间:2018-08-19 02:44:17

标签: mysql mariadb

这似乎应该很容易...我从mysql手册中实际提取了此命令,更改了 和用户的特权。我只是尝试向用户添加特权,并且在命令行中遇到错误。这是我要发送的命令:

GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient';

这是我遇到的错误:

ERROR 1133 (28000): Can't find any matching row in the user table

表和用户已经存在。这是我正在参考的mysql手册的一部分:
https://dev.mysql.com/doc/refman/8.0/en/adding-users.html

我在这里做什么错了?

(Ubuntu服务器18.04上的MariaDB版本10.1.34)

1 个答案:

答案 0 :(得分:1)

documentation

  

作为用户,当您连接到MySQL服务器时,您的身份是   由您连接的主机和用户名确定   指定。

因此,MySQL特权不是授予命名用户的权限,而是授予从特定主机连接的用户的权限。这样,命名用户可以根据其连接的位置而具有不同的特权。

在授予特权时,通常同时指定userhost部分,以便它们可以与正确的用户和主机组合匹配。如果省略了主机部分(如此处所示),则MySQL假定主机是通配符'%'(即从任何地方)。因此,您的命令被视为

GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient'@'%';

,并且您引用的错误消息表示mysql.user表中没有记录,其中user ='myclient'和host ='%'。