在 MySQL 中,如果你希望某个用户能够查询数据库的当前进程(查询正在运行的查询和线程)以及终止(KILL)特定进程,你需要为该用户授予以下权限:
-
查询进程的权限:用户需要
PROCESS权限,这个权限允许用户查看所有的线程和进程信息,包括其他用户的查询。GRANT PROCESS ON *.* TO 'username'@'host'; -
终止进程的权限:用户需要
SUPER权限,或者特定的KILL权限来终止其他用户的会话。
KILL权限允许用户终止(KILL)其他用户的连接。
GRANT KILL ON *.* TO 'username'@'host';
- 需要注意的是,
SUPER权限也包含了KILL权限,但通常会授予一些超级用户或管理员,所以如果只需要KILL权限,可以单独授予KILL权限而不必授予SUPER。
示例
如果你想授予用户 username 在特定主机上(例如 localhost)执行查询进程和杀死进程的权限,可以使用以下命令:
GRANT PROCESS, KILL ON *.* TO 'username'@'localhost';
权限检查
完成权限授予后,可以使用以下命令检查权限:
SHOW GRANTS FOR 'username'@'localhost';
注意事项
- 用户如果只有
PROCESS权限,不能结束其他用户的查询或会话。 - 终止进程需要更高的权限(
KILL或SUPER)。
这样就可以让用户支持查询和杀死进程的操作了。