当前位置: 首页 > news >正文

安全加固 MariaDB 和 MySQL 数据库

安全加固 MariaDB 和 MySQL 数据库

在今天的网络环境中,保护数据库安全至关重要,特别是像 MariaDB 和 MySQL 这样的流行数据库。本文将介绍一些关键的安全加固步骤,以确保数据库系统的安全性和稳定性。

1. 数据库版本和基础设置

首先,确保你的数据库版本是最新的,并且使用安全的配置。可以通过以下命令检查数据库版本:

SELECT VERSION();

确保设置了合适的配置文件(如 my.cnf 或 my.ini),并根据需要配置以下基础设置:

  • 设置合适的密码策略和复杂度校验。
  • 禁用或移除不必要的默认用户和测试数据库。
  • 确保数据库服务在安全的网络环境中运行,限制只允许必要的网络访问。
2. 密码安全性和身份鉴别

检查数据库中的用户密码和身份验证方式,特别是查找空口令用户。使用以下命令根据不同版本查看用户信息:

  • 对于 MySQL 5.5 以下版本:
    SELECT Host, User, Password, plugin FROM mysql.user;
    
  • 对于 MySQL 5.6 及以上版本:
    SELECT Host, User, Password, plugin FROM mysql.user;
    
  • 对于 MySQL 5.7 及以上版本:
    SELECT Host, User, authentication_string, plugin FROM mysql.user;
    

确保所有用户都有安全的密码,并考虑使用更安全的身份验证插件(如 sha256_password)。

3. 插件安装和审计功能

检查是否安装了关键的审计插件和其他安全相关插件,如 SERVER_AUDIT.SO。使用以下命令查看已安装的插件:

SHOW PLUGINS;

进一步查看插件的配置信息:

SHOW VARIABLES LIKE '%audit%';

确保审计功能被正确配置并启用,以便监控数据库的访问和活动。

4. 密码策略和复杂度校验

对于 MySQL 5.6.6 及以上版本,检查是否已配置密码策略和复杂度校验。使用以下命令查看相关设置:

SHOW VARIABLES LIKE 'validate%';

推荐的设置包括密码长度、大小写字符要求、数字要求、特殊字符要求以及密码策略的级别(MEDIUM 或 STRONG)。

5. 口令定期更换和登录失败处理

MySQL 5.7.4 及以上版本支持口令定期更换策略。检查是否设置了全局变量 default_password_lifetime 来限制密码过期策略:

SHOW VARIABLES LIKE 'default_password_lifetime';

确保数据库有合理的口令更新策略,并且实施了登录失败处理机制,如使用相关插件来限制登录失败次数并设置锁定策略。

6. 超时时间配置和日志审计

为了加强数据库的安全性和管理效率,我们还应配置超时时间和启用日志审计功能。

6.1 超时时间配置

超时时间设置可以帮助管理数据库连接的生命周期,防止资源浪费和未经授权的长时间连接。推荐设置如下:

SET GLOBAL wait_timeout = 300;
SET GLOBAL interactive_timeout = 300;

确保将这些设置写入到配置文件中,例如在 my.cnfmy.ini 中添加:

[mysqld]
wait_timeout = 300
interactive_timeout = 300

然后重启数据库服务使更改生效。

6.2 日志审计配置

启用通用查询日志(General Query Log)可以帮助监视和审计数据库活动。操作步骤如下:

  1. 编辑 MySQL 或 MariaDB 的配置文件,如 my.cnfmy.ini

  2. 添加或取消注释以下行来启用通用查询日志:

    [mysqld]
    general_log = ON
    general_log_file = /var/log/mysql/mysql.log
    

    确保 general_log_file 的路径是合适的日志文件路径。

  3. 保存并关闭配置文件。

  4. 重启数据库服务使更改生效:

    sudo systemctl restart mysql   # MySQL 的启动命令可能会有所不同
    

通过以上步骤,可以有效地配置和优化 MySQL 或 MariaDB 的超时时间和日志审计功能,提高数据库的安全性和管理效率。

总结

通过综合的安全措施,可以有效地保护敏感数据并维护数据库系统的稳定性和可靠性。在实施这些措施时,请确保遵循最佳实践,并定期审查和更新数据库安全设置,以应对不断演变的安全威胁和技术挑战。

通过以上配置和优化,可以大幅提升 MariaDB 和 MySQL 数据库的安全性,确保其在面对各种网络攻击和安全挑战时能够保持稳健和可靠。

相关文章:

安全加固 MariaDB 和 MySQL 数据库

安全加固 MariaDB 和 MySQL 数据库 在今天的网络环境中,保护数据库安全至关重要,特别是像 MariaDB 和 MySQL 这样的流行数据库。本文将介绍一些关键的安全加固步骤,以确保数据库系统的安全性和稳定性。 1. 数据库版本和基础设置 首先&…...

【计算机毕业设计】167校园失物招领微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…...

yum的概念、相关命令、ftp http部署步骤;NFS共享文件操作步骤

目录 yum 配置文件 缓存功能操作步骤 创建并配置本地仓库文件 yum相关命令 yum install __ yum repolist yum list __ yum info __ yum search __ yum whatprovides __ yum remove __ yum -y update __ yum history yum grouplist yum groupinstall "__&q…...

Spire.PDF for .NET【文档操作】演示:如何删除 PDF 中的图层

借助Spire.PDF,我们可以在新建或现有pdf文档的任意页面中添加线条、图像、字符串、椭圆、矩形、饼图等多种图层。同时,它还支持我们从pdf文档中删除特定图层。 Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PD…...

【c语言】二级指针

1,定义 本质还是从指针的角度去理解,只不过存的指针的值 2,使用方法...

心理健康测试系统设计

心理健康测试系统设计需要综合考虑多个方面,以确保系统的准确性、易用性和有效性。以下是一个心理健康测试系统设计方案: 一、设计目标 准确性:确保测试结果能够准确反映被测者的心理健康状况。 易用性:设计简洁明了的界面和操作…...

webcomponents学习

一、新建index.html文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title>…...

2024会展行业发展趋势预测

在当今这个数字化浪潮汹涌的时代&#xff0c;会展行业也迎来了自己的变革时刻。 根据《2023中国会展主办机构数字化调研报告》&#xff0c;我们可以清晰地看到几个显著的趋势&#xff1a; 首先&#xff0c;数字化转型已经不再是一道选择题&#xff0c;而是必答题。 超过90%的…...

达梦(DM8)数据库备份与还原(逻辑备份)二

一、达梦数据库的逻辑备份分四种级别的导出&#xff08;dexp&#xff09;与导入&#xff08;dimp&#xff09;的备份 第一种是&#xff1a;数据库级&#xff1a;导出或导入数据库中所有的对象。主要参数是&#xff1a;FULL 第二种是&#xff1a;用户级别&#xff1a;导出或导…...

ThreeJS-截屏下载pdf或者图片时白屏

JS-页面截图下载为pdf 关于如何下载为 pdf 在上面的这篇文章中有写&#xff0c;大家可以看下&#xff0c;下载图片代码在最下面 这时我们发现 three 部分是空白的如下&#xff1a; 这就多少有点尴尬了&#xff0c;这时我们习惯性的看下后台报错 是不是发现了惊喜&#xff0c;…...

redis以后台的方式启动

文章目录 1、查看redis安装的目录2、Redis以后台的方式启动3、通过客户端连接redis4、连接后&#xff0c;测试与redis的连通性 1、查看redis安装的目录 [rootlocalhost ~]# cd /usr/local/redis/ [rootlocalhost redis]# ll 总用量 112 drwxr-xr-x. 2 root root 150 12月 6…...

力扣随机一题 哈希表 排序 数组

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2491.划分技能点相等的团队【中等】 题目&#xff1a; 给你一个正整数数组…...

昇思25天学习打卡营第01天|基本介绍

作为曾经的javaer&#xff0c;本着不断学习的初心&#xff0c;报名了昇思25天的课程&#xff0c;希望自己能学会点东西的目的。 昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架&#xff0c;旨在实现易开发、高效执行、全场景统一部署三大目标。 其中&#xff0c;…...

问题:1、金属基复合材料界面的物理结合是指 #学习方法#媒体

问题&#xff1a;1、金属基复合材料界面的物理结合是指 A&#xff0e;与化学作用有关&#xff0c;既有化学键力存在&#xff0c;又有范德华力存在 B&#xff0e;是一种纯的物理作用&#xff0c;与化学作用无关&#xff0c;即无化学键力存在&#xff0c;但有范德华力存在 C&a…...

突发!OpenAI停止不支持国家API,7月9日开始执行

6月25日凌晨&#xff0c;有部分开发者收到了OpenAI的信&#xff0c;“根据数据显示&#xff0c;你的组织有来自OpenAl目前不支持的地区的API流量。从7月9日起&#xff0c;将采取额外措施&#xff0c;停止来自不在OpenAI支持的国家、地区名单上的API使用。” 但这位网友表示&am…...

大数据集群数据传输

简单的服务器间的通信示例 netcat&#xff0c;简写为 nc&#xff0c;是 unix 系统下一个强大的命令行网络通信工具&#xff0c;用于在两台主机之间建立 TCP 或者 UDP 连接&#xff0c;并提供丰富的命令进行数据通信。nc 在网络参考模型属于应用层。使用 nc 可以做很多事情&…...

css-vxe列表中ant进度条与百分比

1.vxe列表 ant进度条 <vxe-column field"actualProgress" title"进度" align"center" width"200"><template #default"{ row }"><a-progress:percent"Math.floor(row.actualProgress)"size"s…...

网络协议TCP/IP, HTTP/HTTPS介绍

TCP/IP协议 TCP/IP是一种基于连接的通信协议&#xff0c;它是互联网的基础协议。TCP代表传输控制协议&#xff0c;IP代表Internet协议。虽然这两个协议通常一起提及&#xff0c;但它们实际上是分开的&#xff1a;IP负责在网络中从一台计算机向另一台计算机发送数据包&#xff0…...

STM32高级控制定时器(STM32F103):PWM输出模式

目录 概述 1 PWM模式介绍 2 PWM类型 2.1 PWM边缘对齐模式 2.2 PWM中心对齐模式 3 使用STM32Cube配置PWM 3.1 STM32Cube配置参数 3.2 生成Project 4 设置PWM占空比 4.1 函数介绍 4.3 函数源码 5 测试代码 5.1 编写测试代码 5.2 函数源码 6 运行代码 概述 本文主…...

TikTok达人背后的品牌影响力与用户增长

TikTok独特的算法和广泛的用户基础&#xff0c;使得品牌在TikTok上的推广活动变得尤为重要。在这种背景下&#xff0c;TikTok达人合作成为品牌推广、用户增长和社交影响力的重要工具。本文Nox聚星将和大家探讨TikTok达人合作在这些方面的作用。 一、对品牌推广的作用 1. 增加…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...