当前位置: 代码网 > it编程>数据库>Mysql > MySQL彻底禁止用户执行KILL的解决方法

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

2025年05月22日 Mysql 我要评论
在 mysql 中,即使用户只有select权限,仍然可以执行show processlist和kill命令。原因如下:1.show processlist不需要特殊权限默认情况下,任何用户都可以执行

在 mysql 中,即使用户只有 select 权限,仍然可以执行 show processlist 和 kill 命令。原因如下:

1. show processlist 不需要特殊权限

  • 默认情况下,任何用户都可以执行 show processlist,即使只有 usage 权限(最低权限)。
  • 但如果 mysql 启用了 --skip-show-database 启动选项,普通用户可能看不到不属于自己的进程。

2. kill 命令的权限依赖

  • kill 命令的执行权限取决于 process 或 super 权限
    • 如果用户有 process 权限,可以 kill 自己的会话(即自己建立的连接)。
    • 如果用户有 super 权限,可以 kill 任意会话(包括其他用户的会话)。
  • 即使只授予 select 权限,某些情况下用户仍然可以 kill 自己的会话
    • 在 mysql 5.7+,如果用户有 connection_admin(或 super 权限的替代),可能仍然可以 kill 会话。
    • 在 mysql 8.0+,引入了更细粒度的权限控制,但默认情况下,某些操作仍然可能允许 kill

3. 为什么 select 权限的用户可以 kill?

  • 可能的原因
    1. 用户隐式拥有 process 权限(检查 mysql.user 表确认)。
    2. mysql 的版本差异(某些版本默认允许 kill 自己的会话)。
    3. 用户属于某个角色(mysql 8.0+),该角色可能授予了 process 或 kill 权限。

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

方法 1:明确撤销 process 和 super 权限

revoke process, super on *.* from 'query'@'%';
flush privileges;
  • 这样用户只能 show processlist,但无法 kill 任何会话(包括自己的)。

方法 2:限制 show processlist(可选)

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

revoke process on *.* from 'query'@'%';
flush privileges;
  • 这样 show processlist 仅显示用户自己的会话(而不是所有会话)。

方法 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
  • 如果 process_priv = 'y',说明用户有 process 权限,可以 kill 自己的会话。

总结

  • select 权限本身不会允许 kill,但 process 权限会
  • 要禁止 kill,必须明确撤销 process 和 super 权限
  • mysql 8.0+ 提供了更细粒度的权限控制,可以更严格限制 kill 操作。

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

以上就是mysql彻底禁止用户执行kill的解决方法的详细内容,更多关于mysql禁止用户执行kill的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com