<h1>GreatSQL备份报错"PROCESS权限不足"分析与解决</h1>
报错案例
某项目在执行备份时,运行 mysqldump 时报错:
$ /kingdee/greatdb/greatdb/bin/mysqldump -h inner-test.cndrealty.com -P 3307 -u portal_admin -p'xxxx' --set-gtid-purged=OFF cndrealty_mas_console > cndrealty_mas_console-20241224.BAK.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
然而检查用户权限时却显示该账号拥有完整的数据库权限:
greatsql> SHOW GRANTS for 'portal_admin'@'%';
Grants for portal_admin@%
GRANT USAGE ON . TO portal_admin@%
GRANT ALL PRIVILEGES ON 3gol.* TO portal_admin@%
GRANT ALL PRIVILEGES ON kdrive.* TO portal_admin@%
GRANT ALL PRIVILEGES ON nacos.* TO portal_admin@%
GRANT ALL PRIVILEGES ON opensys.* TO portal_admin@%
GRANT ALL PRIVILEGES ON cndreality_mas_console.* TO portal_admin@%
GRANT ALL PRIVILEGES ON portal_db.* TO portal_admin@%
看似权限足够,为什么备份仍然失败?
一、深度解析 mysqldump 权限机制
mysqldump备份数据库时,实际上涉及多种权限,不只是简单的 SELECT
:
- 基础权限:
SELECT
(读取表数据)SHOW VIEW
(导出视图定义)TRIGGER
(导出触发器)
- 高级选项依赖权限:
--single-transaction
模式下,一般不锁表,但在某些情况下仍可能需要LOCK TABLES
权限。- 默认情况下(未使用
--no-tablespaces
****)需要PROCESS
权限,这是本次导致故障的关键权限。 - 对于 GreatSQL开启 GTID 的环境,还需要
RELOAD
或FLUSH_TABLES
权限。
未经允许不得转载:紫竹林-程序员中文网 » GreatSQL备份报错”PROCESS权限不足”分析与解决