MySQL 8执行GRANT命令返回成功但未生效,普通用户无法为其他用户授权
问题原因
- MySQL中用户如需向其他账号授予权限,在自身持有对应操作权限的基础上,还必须单独拥有
GRANT OPTION权限 - 你此前给
zak@localhost授予全局所有权限时,ALL PRIVILEGES默认不包含GRANT OPTION权限,因此该账号无法将权限转授给其他用户,触发1044报错
修复方案
- 使用root账号登录MySQL
- 执行以下命令为
zak@localhost追加授权:
-- 全局授权(适配你需要给任意库/表授权的场景) GRANT ALL PRIVILEGES ON *.* TO 'zak'@'localhost' WITH GRANT OPTION; -- 刷新权限生效 FLUSH PRIVILEGES;
如果生产环境不需要全局授权能力,可缩小权限范围,仅开放指定库的授权权限,安全性更高:
-- 仅给wp_zakattack库的授权能力 GRANT ALL PRIVILEGES ON wp_zakattack.* TO 'zak'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 重新登录
zak账号即可正常执行给其他用户授权的操作
内容的提问来源于stack exchange,提问作者Zak
相关产品推荐
相关产品推荐

