MySQL 8中,用户创建和授权语句必须分开执行

77 阅读1分钟

在MySQL 8中,用户创建和授权语句必须分开执行:

-- MySQL 8的版本
CREATE USER 'lfsun'@'%' IDENTIFIED BY 'lfsun666';
GRANT ALL PRIVILEGES ON *.* TO 'lfsun'@'%';

-- MySQL 5.7的版本
GRANT ALL PRIVILEGES ON *.* TO 'lfsun'@'%' IDENTIFIED BY 'lfsun666';

在MySQL 8中,首先使用 CREATE USER 语句创建用户,然后使用 GRANT 语句为用户授予权限。这种分离的方式增加了安全性,允许更细粒度地管理用户权限。

需要注意的是,在MySQL 8的 GRANT 语句中,不再包含 IDENTIFIED BY 子句,因为用户的身份验证信息已经在 CREATE USER 语句中设置过了。在MySQL 8中,GRANT 语句主要用于指定用户对哪些数据库和表有哪些权限。

总结一下,MySQL 8的用户创建和授权的正确流程为先创建用户,然后授予权限。