0

0

mysql中超级用户权限与安全控制

P粉602998670

P粉602998670

发布时间:2026-02-22 08:21:10

|

916人浏览过

|

来源于php中文网

原创

mysql超级用户权限核心是super及8.0+的system_variables_admin、system_user_admin等,all privileges不包含super;禁用super需先检查read_only等依赖项,避免启动失败;应按最小权限原则分角色授权,禁用远程root,撤销高危权限,并审计global操作。

mysql中超级用户权限与安全控制

MySQL超级用户权限到底指哪些?

MySQL中真正具备“超级用户”能力的权限是 SUPERSYSTEM_VARIABLES_ADMIN(8.0+)、SYSTEM_USER_ADMIN(8.0.29+)等组合,但最常被误认为“万能权限”的其实是 ALL PRIVILEGES ——它不包含 SUPER,也不能执行关键管理操作。

  • SUPER 允许 kill 线程、修改全局变量、切换 binlog 格式、绕过 max_connections 限制
  • SYSTEM_VARIABLES_ADMIN 替代了 8.0 中部分 SUPER 功能,专管动态系统变量
  • BACKUP_ADMINCLONE_ADMIN 是独立权限,不随 ALL 自动授予
  • 创建用户、授权、删除用户需要 CREATE USERUSER_ADMIN,不是 ALL 的子集

如何安全地禁用 root@localhost 的 SUPER 权限?

直接 REVOKE SUPER ON *.* FROM 'root'@'localhost'; 可能导致 mysqld 启动失败或复制中断,尤其当配置了 read_only=ON 或启用了 GTID。必须确认依赖项再操作。

  • 先查依赖:
    SELECT VARIABLE_NAME, VARIABLE_VALUE FROM performance_schema.global_variables WHERE VARIABLE_NAME IN ('read_only', 'super_read_only', 'enforce_gtid_consistency');
  • super_read_only=ON,必须先 SET GLOBAL super_read_only = OFF;(需当前有 SUPER
  • 撤销后,用 SHOW GRANTS FOR 'root'@'localhost'; 确认 SUPER 已消失
  • 重启前建议在 my.cnf 中显式设置 super_read_only=OFF,避免服务启动时因权限缺失卡住

用最小权限原则替代 root 账户的实操路径

生产环境不该存在长期启用 SUPER 的应用账户。应按角色拆分权限,例如备份任务只给 BACKUP_ADMIN + SELECT,监控账号只给 PROCESS + REPLICATION CLIENT

理想商城 LxShop
理想商城 LxShop

套采用php+mysql的多用户网上商城系统,安全、负载量高,访问迅捷,能与论坛、博客、CMS等系统整合并支持一站登陆。功能包括用户管理、商品管理、订单管理、销售统计、广告/公告管理、附件管理等,这些管理权限与用户等级挂钩。内置多套模板,支持界面个性化设计和人性化的采购方式。系统内置贝宝、支付宝、快钱在线等支付网关以及QQ、旺旺、雅虎通即时网络通讯工具。

下载
  • 创建专用备份用户:
    CREATE USER 'backup_user'@'localhost' IDENTIFIED BY 'strong_pwd';<br>GRANT BACKUP_ADMIN, SELECT ON *.* TO 'backup_user'@'localhost';<br>GRANT LOCK TABLES ON *.* TO 'backup_user'@'localhost';
  • 禁止远程 root 登录:
    DELETE FROM mysql.user WHERE User='root' AND Host!='localhost'; FLUSH PRIVILEGES;
  • 对 Web 应用账户,明确拒绝高危操作:
    REVOKE FILE, SHUTDOWN, SUPER, REPLICATION CLIENT ON *.* FROM 'app_user'@'%';
  • mysql_native_password 插件替代 caching_sha2_password(旧客户端兼容性好),但密码策略仍需强制长度和复杂度

权限变更后连不上数据库?检查这三处

撤销 SUPER 后常见“Access denied”或“Can’t connect”,往往不是权限本身问题,而是配置或会话残留导致。

  • 检查连接是否走 socket(localhost)还是 TCP(127.0.0.1):MySQL 对这两个 host 的权限记录是分开的
  • 确认没有残留 init_connect 设置执行了需要 SUPER 的语句(如 SET SESSION sql_log_bin=0
  • 如果用 Docker 或 systemd 启动 MySQL,检查 mysqld.serviceentrypoint.sh 是否硬编码了 --skip-grant-tables--init-file

实际部署中,SUPER 权限最危险的不是被滥用,而是被遗忘——比如某次临时开通用于调试,之后没人记得回收。只要涉及 GLOBAL 变量修改、线程终止、日志控制的操作,都得走审批流程并留审计日志。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

680

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

392

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

286

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

519

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

264

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

392

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

537

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

638

2023.08.14

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

928

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.3万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 835人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号