授予权限时出错 - 不推荐使用Mysql GRANT,而是使用ALTER USER

时间:2017-10-17 05:59:16

标签: mysql

我正在使用最新版本的mysql。运行以下命令时,它要求我使用ALTER USER命令而不是GRANT。我没有看到使用ALTER USER命令在任何地方更新权限的语法。 https://dev.mysql.com/doc/refman/5.7/en/alter-user.html

GRANT ALL PRIVILEGES ON *.* to 'root'@'localhost' IDENTIFIED by ‘1234’;

任何指针都会非常感激。

1 个答案:

答案 0 :(得分:5)

GRANT的文档提及:

  

注意

     

如果GRANT语句中指定的帐户尚不存在,GRANT可能会在稍后讨论NO_AUTO_CREATE_USER SQL模式的条件下创建帐户。也可以使用GRANT来指定非特权帐户特征,例如它是否使用安全连接以及对服务器资源的访问限制。

     

但是,从MySQL 5.7.6开始,不推荐使用GRANT来创建帐户或定义非特权。相反,请使用CREATE USERALTER USER执行这些任务。

查询的IDENTIFIED by ‘1234’部分用于设置/更改用户的密码。密码不是特权,应使用ALTER USER更改密码。

使用:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'

向用户授予所需的权限,并且:

ALTER USER 'root'@'localhost' IDENTIFIED BY '1234'

如果需要,可以更改密码。

备注

值得一提的是,ALTER USER声明为introduced in MySQL 5.6。对于旧版本,GRANT语句是更改用户密码的唯一方法。