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

如何创建仅拥有SHOW PROCESSLIST权限可查看所有MySQL进程的非root用户

MySQL专用进程查看用户实现方案

方案1:基于PROCESS全局权限配置(最简单)

该方案配置成本最低,权限完全满足需求:

  • 使用root账号登录MySQL实例,执行以下命令创建用户,可根据实际访问来源调整localhost为指定IP段,密码替换为自定义的强密码:
CREATE USER 'process_viewer'@'localhost' IDENTIFIED BY '你设置的安全密码';
  • 授予全局PROCESS权限,该权限仅允许用户查看所有会话的进程列表,无其他数据访问权限:
GRANT PROCESS ON *.* TO 'process_viewer'@'localhost';
FLUSH PRIVILEGES;
  • 验证效果:
    1. 用新用户登录:mysql -u process_viewer -p
    2. 执行SHOW PROCESSLIST;可查看所有用户的进程,符合需求
    3. 尝试查询任意业务表、系统表都会返回权限不足提示

方案2:基于存储过程的更严格权限控制

如果你需要完全禁止PROCESS权限附带的SHOW ENGINE等其他操作,可以用存储过程做细粒度控制:

  • root账号下创建指定存储过程,使用定义者权限执行:
DELIMITER //
CREATE PROCEDURE sp_show_all_processlist()
SQL SECURITY DEFINER
BEGIN
  SHOW FULL PROCESSLIST;
END //
DELIMITER ;
  • 创建用户后仅授予该存储过程的执行权限,不需要授予PROCESS权限:
CREATE USER 'process_viewer'@'localhost' IDENTIFIED BY '你设置的安全密码';
GRANT EXECUTE ON PROCEDURE 你的库名.sp_show_all_processlist TO 'process_viewer'@'localhost';
FLUSH PRIVILEGES;
  • 该用户登录后仅可通过执行CALL sp_show_all_processlist();查看进程列表,其他所有操作均无权限,权限控制精度更高。

注意:以上方案兼容MySQL 5.7、8.0以及MariaDB所有主流版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:15:05