首页/数据/数据库速查/MySQL 8.0 动态权限与 SYSTEM_USER

MySQL 8.0 动态权限与 SYSTEM_USER

8.0 把 SUPER 拆成细粒度动态权限(SYSTEM_VARIABLES_ADMIN、BACKUP_ADMIN、REPLICATION_APPLIER 等),最小授权可按需精确到操作。

数据库速查数据更新于 2026-10-13

动态权限解决什么

MySQL 8.0 把过去笼统的 SUPER 拆成一族细粒度权限,统称动态权限:改全局系统变量、整库备份、管理复制、断开他人会话各自独立成一条。它们不必绑定固定范围,可以按操作精确授予,授权记录落在 mysql.global_grants 表里。目标是让最小授权写到具体动作,而不是继续用一把万能钥匙。

基本信息

适用版本MySQL 8.0 起;5.7 没有此机制
常见动态权限SYSTEM_VARIABLES_ADMIN、BACKUP_ADMIN、CONNECTION_ADMIN、REPLICATION_APPLIER、AUDIT_ADMIN
授权范围只能授到全局(ON *.*)
存储位置mysql.global_grants
查看方式SHOW GRANTS 会列出,global_grants 可批量筛查
相关标记SYSTEM_USER 把账号标记为系统用户

典型使用场景

  • 备份账号只给 BACKUP_ADMIN,不再顺带拿到改参数的能力
  • 运维工具账号按需拆成改参数、看进程、断会话几条权限
  • 复制管理与应用者分开授权,从库运维与业务应用各持所需
  • 接管 5.7 的授权脚本时把 SUPER 逐条映射成具体动态权限
  • 把核心管理账号标记为 SYSTEM_USER,避免被同类账号影响

授权与核对

授权与核对
# 精确授权:备份、改参数、断会话分开给不同账号
GRANT BACKUP_ADMIN ON *.* TO 'backup'@'10.10.%';
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'ops'@'10.10.%';
GRANT CONNECTION_ADMIN ON *.* TO 'duty'@'10.10.%';

# 复制类:静态权限与动态权限按角色拆开
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'10.0.%';

# 标记为系统用户
GRANT SYSTEM_USER ON *.* TO 'dba_master'@'127.0.0.1';

# 核对:SHOW GRANTS 会列出动态权限,批量筛查看系统表
SHOW GRANTS FOR 'backup'@'10.10.%';
SELECT user, host, priv FROM mysql.global_grants WHERE user = 'backup';

旧 SUPER 能力对照

原来用 SUPER 做的事8.0 对应动态权限说明
修改全局系统变量SYSTEM_VARIABLES_ADMIN覆盖 SET GLOBAL 与 PERSIST
做整库备份BACKUP_ADMIN整实例加锁等备份动作
断开其他会话CONNECTION_ADMIN配合 PROCESS 才能看到会话
从库管理REPLICATION_SLAVE_ADMIN 或 REPLICATION_APPLIER按管理者与应用者拆分
审计与插件类操作AUDIT_ADMIN插件装载与启停
标记账号属性SYSTEM_USER区分系统用户与普通用户
迁移到 8.0 时最常见的做法是「旧脚本报权限不足就把 SUPER 补上」,这会让最小授权彻底失效。更省事的路径是记录报错里的操作类型,查官方动态权限表找到对应条目,只补那一条。

易错点

  • 迁移时继续用 SUPER 兜底:它已被标记弃用,也无法体现「为什么要这个权限」,审计时说不清楚
  • 只核 SHOW GRANTS 不查 mysql.global_grants:两处合起来才是完整权限画像,容易漏查
  • 5.7 的审计脚本直接照搬:动态权限不在旧脚本查询的表里,需要按版本分支
  • 给应用账号授 SYSTEM_VARIABLES_ADMIN 图省事:等于能改全局参数,可以直接把实例拖垮
  • 把 SYSTEM_USER 随便授出去:系统用户身份会影响其他账号对它的管理操作,应只给核心管理账号

数据来源与参考

  • MySQL 8.0 Reference Manual: Dynamic Privileges

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌