You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB 10.11.6权限更新问题:HeidiSQL报错且GRANT语句无效

解决MariaDB 10.11.6权限更新异常问题

关于HeidiSQL编辑mysql.user视图报错的说明

MariaDB 10.4及以上版本已将mysql.user从物理表改为系统视图,禁止直接通过视图的数据页编辑权限,这就是你遇到报错的原因。所有权限操作必须使用官方提供的SQL语句完成。

解决GRANT语句无效果的步骤

1. 确认目标用户存在

先执行以下语句检查用户是否存在:

SELECT User, Host FROM mysql.user WHERE User='user' AND Host='localhost';

如果查询无结果,需先创建用户:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'your_secure_password';

2. 确认授权的数据库存在

执行语句检查目标数据库是否存在,注意数据库名的大小写(Windows下MariaDB默认大小写不敏感,但建议与实际名称完全一致):

SHOW DATABASES LIKE 'database';

3. 确保执行授权的用户拥有足够权限

执行授权操作的用户(比如root)必须具备GRANT OPTION权限,可通过以下语句验证:

SHOW GRANTS FOR CURRENT_USER;

如果没有该权限,需要先给当前用户授予该权限(仅root用户可操作):

GRANT GRANT OPTION ON *.* TO 'current_user'@'localhost';

4. 正确执行授权并验证

重新执行授权语句(无需FLUSH PRIVILEGES,MariaDB 10.4+会自动刷新权限):

GRANT SELECT, DELETE ON `database`.* TO `user`@`localhost`;

然后执行以下语句验证权限是否生效:

SHOW GRANTS FOR 'user'@'localhost';

如果结果中包含GRANT SELECT, DELETE ON database.* TO user@localhost``,说明权限已成功授予。

5. 排查匿名用户干扰

如果用户登录后仍无权限,检查是否存在匿名用户(''@'localhost'),该用户可能优先被匹配导致权限异常:

SELECT User, Host FROM mysql.user WHERE User='';

若存在,删除匿名用户:

DROP USER ''@'localhost';

内容的提问来源于stack exchange,提问作者user2337160

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 18:42:33