第九篇:MySQL 安全加固与访问控制策略实战

news2025/12/18 3:00:05

数据库的安全不仅仅是防止外部入侵,更包括合理配置账户权限、日志审计、网络加密、配置加固等。本文将系统性梳理 MySQL 的安全机制与实战加固方法,助你构建安全可靠的数据库运行环境。

一、数据库安全风险面

数据库常面临的威胁:

  • 弱口令或默认账户;

  • SQL 注入攻击;

  • 非授权访问;

  • 数据传输被监听(中间人攻击);

  • 内部人员越权操作;

  • 日志信息泄露。

 二、用户权限管理与最小授权原则

1. 查看当前用户权限

SHOW GRANTS FOR 'user'@'host';

2. 创建账户并授权

-- 创建用户
CREATE USER 'dev'@'192.168.1.%' IDENTIFIED BY 'StrongP@ss123';

-- 授权指定数据库操作权限
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'dev'@'192.168.1.%';

-- 撤销权限
REVOKE UPDATE ON mydb.* FROM 'dev'@'192.168.1.%';

3. 删除用户

DROP USER 'dev'@'192.168.1.%';

建议

  • 禁用或删除匿名账户和 test 库;

  • 给用户只授权必要的权限,禁止使用 GRANT, FILE, SUPER 等高危权限;

  • 使用 REVOKE 定期收回不必要权限。

三、数据库访问加密与 SSL 配置

1. 启用 SSL 传输加密

修改配置文件 my.cnf

[mysqld] ssl-ca=/etc/mysql/ssl/ca.pem ssl-cert=/etc/mysql/ssl/server-cert.pem ssl-key=/etc/mysql/ssl/server-key.pem

重启 MySQL 并验证:

SHOW VARIABLES LIKE '%ssl%';

2. 强制客户端使用 SSL 连接

GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'%' REQUIRE SSL;

四、配置文件加固建议

编辑 /etc/my.cnf 添加或确认以下设置:

skip-name-resolve # 禁用 DNS 解析,加速连接 skip-symbolic-links # 防止符号链接绕过权限 local-infile=0 # 禁止 LOAD DATA LOCAL INFILE,防止 SQL 注入 secure-file-priv="/tmp" # 限制导入导出路径

 五、SQL 注入防御与审计机制

1. SQL 注入防御建议

  • 应用层使用参数化查询(如 prepare、ORM 绑定);

  • 数据库层禁止 local_infile

  • 限权用户不具备 FILESUPER 等权限。

2. 启用审计日志(推荐使用插件)

使用 MySQL Enterprise Audit 或开源审计插件:

INSTALL PLUGIN audit_log SONAME 'audit_log.so';

记录登录、DDL/DML 等行为,提升可追溯性。

六、防止暴力破解与网络入侵

1. 配置防火墙(iptables/UFW)

  • 仅允许可信 IP 登录 MySQL 端口(3306);

  • 拒绝外部未授权访问。

# 示例:只允许 192.168.1.0/24 网段访问 MySQL iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP

2. 限制连接来源(bind-address)

bind-address = 127.0.0.1 # 仅允许本地连接

或绑定指定内网 IP。

七、数据库日志与定期审计

建议开启以下日志并定期审查:

日志类型描述
error.log启动、运行、崩溃信息
slow.log慢查询日志,便于优化 SQL
general.log所有查询(不推荐长期启用)
audit.log审计插件生成的操作记录日志

可配合 logrotate 定期归档和压缩。

八、安全加固自动化脚本(简要)

#!/bin/bash mysql -u root -p$1 <<EOF -- 删除匿名用户 DELETE FROM mysql.user WHERE User=''; -- 禁止 root 远程登录 UPDATE mysql.user SET Host='localhost' WHERE User='root'; -- 删除 test 数据库 DROP DATABASE IF EXISTS test; -- 刷新权限 FLUSH PRIVILEGES; EOF

 九、最佳实践总结

安全维度加固建议
账户与权限分权分域、禁用空口令、启用强认证
数据传输启用 SSL、限制客户端连接
网络与端口关闭公网访问、使用防火墙、绑定内网地址
操作审计开启审计日志、记录用户操作
系统与文件权限严控配置文件访问权限(如 chmod 600 my.cnf
自动化与策略脚本自动化+定期扫描弱点(如使用 Lynis、MySQLTuner)

总结

  • 安全策略应覆盖用户、网络、系统和应用多维度;

  • 合理配置 MySQL 权限和加密机制是第一道防线;

  • 日志审计与访问控制是提升可控性的关键;

  • 安全是一个持续过程,需结合业务定期检查与加固。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2395069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webpack CDN打包优化

CDN网络分发服务 请求资源时最近的服务器将缓存内容交给用户 体积较大且变动不多的文件存在CDN文件中 react react-dom资源 // 添加自定义对于webpack的配置const path require(path) const { whenProd, getPlugin, pluginByName } require(craco/craco)module.exports {//…

ARM内核一览

经常看介绍某某牛批芯片用的又是ARM什么核&#xff0c;看的云里雾里&#xff0c;所以简单整理整理。&#xff08;内容来自官网和GPT&#xff09; 1 ARM 内核总体分类 系列特点应用场景Cortex-M超低功耗、低成本、实时性嵌入式系统、微控制器、IoTCortex-R高可靠性、硬实时汽车…

Rust 和 Python 如何混合使用

Rust 与 Python 可以通过多种方式混合使用&#xff0c;如 FFI 接口、PyO3 库、CFFI、CPython API、wasm 模块嵌入等。这种混合开发模式可结合 Rust 的性能优势与 Python 的开发效率。其中&#xff0c;PyO3 是目前最受欢迎的桥接工具&#xff0c;它允许使用 Rust 编写 Python 扩…

台式电脑CPU天梯图_2025年台式电脑CPU天梯图

CPU的选择绝对是重中之重,它关乎了一台电脑性能好坏。相信不少用户,在挑选CPU的时候不知道谁强谁弱,尤其是intel和AMD两款CPU之间。下面通过2025年台式电脑CPU天梯图来了解下这两款cpu. 2025年台式电脑CPU天梯图 2025年台式电脑CPU天梯图包含了老旧型号以及12代、13代、14代…

2025年渗透测试面试题总结-匿名[校招]安全服务工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 匿名[校招]安全服务工程师 一面问题与完整回答 1. 学校、专业、成绩与排名 2. 学习安全时长 3. 当前学习…

Deseq2:MAG相对丰度差异检验

首先使用代码将contigs和MAG联系起来 https://github.com/MrOlm/drep/blob/master/helper_scripts/parse_stb.py ~/parse_stb.py --reverse -f ~/bin_dir/* -o ~/bin_dir/genomes.stb # 查看第一列的contigs有没有重复&#xff08;重复的话会影响后续比对&#xff09; awk {p…

CTFHub-RCE 命令注入-过滤目录分隔符

观察源代码 代码里面可以发现过滤了目录分隔符\和/ 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1|ls 打开flag文件 发现存在一个flag_is_here的文件夹&#xff0c;我们需要打开这个文件夹找到目标文件我们尝试分步&#xff0c;先利…

CentOS-stream-9 Zabbix的安装与配置

一、Web环境搭建部署Zabbix时&#xff0c;选择合适的MariaDB、PHP和Nginx版本非常重要&#xff0c;以确保兼容性和最佳性能。以下是建议版本&#xff1a;Zabbix 6.4 MariaDB&#xff1a;官方文档推荐使用MariaDB 10.3或更高版本。对于CentOS Stream 9&#xff0c;建议使用Maria…

开源是什么?我们为什么要开源?

本片为故事类文章推荐听音频哦 软件自由运动的背景 梦开始的地方 20世纪70年代&#xff0c;软件行业处于早期发展阶段&#xff0c;软件通常与硬件捆绑销售&#xff0c;用户对软件的使用、修改和分发权利非常有限。随着计算机技术的发展和互联网的普及&#xff0c;越来越多的开…

【unity游戏开发——编辑器扩展】EditorApplication公共类处理编辑器生命周期事件、播放模式控制以及各种编辑器状态查询

注意&#xff1a;考虑到编辑器扩展的内容比较多&#xff0c;我将编辑器扩展的内容分开&#xff0c;并全部整合放在【unity游戏开发——编辑器扩展】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、监听编辑器事件1、常用编辑器事件2、示例监听播放模…

React---day3

React 2.5 jsx的本质 jsx 仅仅只是 React.createElement(component, props, …children) 函数的语法糖。所有的jsx最终都会被转换成React.createElement的函数调用。 createElement需要传递三个参数&#xff1a; 参数一&#xff1a;type 当前ReactElement的类型&#xff1b;…

PyCharm接入DeepSeek,实现高效AI编程

介绍本土AI工具DeepSeek如何结合PyCharm同样实现该功能。 一 DeepSeek API申请 首先进入DeepSeek官网&#xff1a;DeepSeek 官网 接着点击右上角的 “API 开放平台“ 然后点击API keys 创建好的API key&#xff0c;记得复制保存好 二 pycharm 接入deepseek 首先打开PyCh…

CTFSHOW-WEB-36D杯

给你shell 这道题对我这个新手还是有难度的&#xff0c;花了不少时间。首先f12看源码&#xff0c;看到?view_source&#xff0c;点进去看源码 <?php //Its no need to use scanner. Of course if you want, but u will find nothing. error_reporting(0); include "…

RabbitMQ vs MQTT:深入比较与最新发展

RabbitMQ vs MQTT&#xff1a;深入比较与最新发展 引言 在消息队列和物联网&#xff08;IoT&#xff09;通信领域&#xff0c;RabbitMQ 和 MQTT 是两种备受瞩目的技术&#xff0c;各自针对不同的需求和场景提供了强大的解决方案。随着 2025 年的到来&#xff0c;这两项技术都…

金砖国家人工智能高级别论坛在巴西召开,华院计算应邀出席并发表主题演讲

当地时间5月20日&#xff0c;由中华人民共和国工业和信息化部&#xff0c;巴西发展、工业、贸易与服务部&#xff0c;巴西公共服务管理和创新部以及巴西科技创新部联合举办的金砖国家人工智能高级别论坛&#xff0c;在巴西首都巴西利亚举行。 中华人民共和国工业和信息化部副部…

【KWDB 创作者计划】_再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践

再热垃圾发电汽轮机仿真与监控系统&#xff1a;KaiwuDB 批量插入10万条数据性能优化实践 我是一台N25-3.82/390型汽轮机&#xff0c;心脏在5500转/分的轰鸣中跳动。垃圾焚烧炉是我的胃&#xff0c;将人类遗弃的残渣转化为金色蒸汽&#xff0c;沿管道涌入我的胸腔。 清晨&#x…

Android第十一次面试多线程篇

​面试官​&#xff1a; “你在项目里用过Handler吗&#xff1f;能说说它是怎么工作的吗&#xff1f;” ​候选人​&#xff1a; “当然用过&#xff01;比如之前做下载功能时&#xff0c;需要在后台线程下载文件&#xff0c;然后在主线程更新进度条。这时候就得用Handler来切…

安全,稳定可靠的政企即时通讯数字化平台

在当今数字化时代&#xff0c;政企机构面临着复杂多变的业务需求和日益增长的沟通协作挑战。BeeWorks作为一款安全&#xff0c;稳定可靠的政企即时通讯数字化平台&#xff0c;凭借其安全可靠、功能强大的特性&#xff0c;为政企提供了高效、便捷的沟通协作解决方案&#xff0c;…

LiquiGen流体导入UE

导出ABC 导出贴图 ABC导入Houdini UE安装SideFX_Labs插件 C:\Users\Star\Documents\houdini20.5\SideFXLabs\unreal\5.5 参考: LiquiGenHoudiniUE血液流程_哔哩哔哩_bilibili

Ubuntu下编译mininim游戏全攻略

目录 一、安装mininim 软件所依赖的库&#xff08;重点是allegro游戏引擎库&#xff09;二、编译mininim 软件三、将mininim打包给另一个Ubuntu系统使用四、安卓手机运行mininim 一、安装mininim 软件所依赖的库&#xff08;重点是allegro游戏引擎库&#xff09; 1. 用apt-get…