Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL禁止用户执行KILL

MySQL彻底禁止用户执行KILL的解决方法

作者:学亮编程手记

在 MySQL 中,即使用户只有 SELECT 权限,仍然可以执行 SHOW PROCESSLIST 和 KILL 命令,那么如何彻底禁止用户执行 KILL?本文给大家详细介绍了MySQL彻底禁止用户执行KILL的解决方法,需要的朋友可以参考下

在 MySQL 中,即使用户只有 SELECT 权限,仍然可以执行 SHOW PROCESSLIST 和 KILL 命令。原因如下:

1. SHOW PROCESSLIST 不需要特殊权限

2. KILL 命令的权限依赖

3. 为什么 SELECT 权限的用户可以 KILL?

如何彻底禁止用户执行 KILL?

方法 1:明确撤销 PROCESS 和 SUPER 权限

REVOKE PROCESS, SUPER ON *.* FROM 'query'@'%';
FLUSH PRIVILEGES;

方法 2:限制 SHOW PROCESSLIST(可选)

如果希望用户完全看不到进程列表:

REVOKE PROCESS ON *.* FROM 'query'@'%';
FLUSH PRIVILEGES;

方法 3:使用 MySQL 8.0+ 的细粒度权限

在 MySQL 8.0+,可以更精确控制:

-- 禁止 KILL 其他会话
REVOKE SYSTEM_USER, SYSTEM_VARIABLES_ADMIN, SESSION_VARIABLES_ADMIN ON *.* FROM 'query'@'%';

-- 确保没有 PROCESS 权限
REVOKE PROCESS ON *.* FROM 'query'@'%';
FLUSH PRIVILEGES;

验证用户的权限

-- 查看用户权限
SHOW GRANTS FOR 'query'@'%';

-- 检查 PROCESS 权限
SELECT * FROM mysql.user WHERE user='query'\G

总结

如果你的 query 用户仍然可以 KILL,请检查其完整权限(可能有隐藏的 PROCESS 或角色权限)。

以上就是MySQL彻底禁止用户执行KILL的解决方法的详细内容,更多关于MySQL禁止用户执行KILL的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文