mysql 基线加固/等保整改

news/2024/11/29 9:32:39/

PS:高版本的mysql可能不适用本文

1 修改DBA登录密码

  • 首次修改,在shell环境下执行mysqladmin -u root password,连续输入两次新密码
  • 非首次修改,在shell环境下执行mysqladmin -u root password -p 原密码,连续输入两次新密码
  • 在mysql下执行alter user 'root'@'localhost' identified by '新密码';

2 删除默认数据库和用户

注意:5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

  • 删除测试库
show databases;
drop database test;
  • 删除非root用户
use mysql;
delete from user where not (user='root');
  • 删除密码为空的root用户
delete  from user where user='root' and password='';
flush privileges;

3 变更DBA用户名

使用update更新mysql库中user表中的信息

use mysql;
update user set user='hehao' where user='root';
flush privileges;

4 在账户管理时使用加密算法

注意:Mysql8.0之前的版本中,加密规则是mysql_native_password,而在Mysql8之后,加密规则是caching_sha2_password

添加账户test,密码进行加密处理

use mysql;
insert into users values (1,password(123456),'test');

5 更改mysql启动用户

Linux下修改my.cnf文件

vim /etc/my.cnf
加入如下内容
[mysqld]
user=mysql

6 限制远程连接数

Linux下修改my.cnf文件,去掉注释符号

vim /etc/my.cnf
加入如下内容
[mysqld]
max_connections=5
max_user_connections=2

或者限制某个用户,在mysql中执行

grant test on *.* to testdb@localhost max_user_connections 2;

7 关闭远程管理数据库

修改my.cnf文件,去掉注释符号

vim /etc/my.cnf
修改内容如下
skip-networking 

8 清理mysql命令历史

  • 注意清理家目录中的.mysql_history
ln -s /dev/null /root/.mysql_history
  • 禁止使用明文模式登录mysql,应该使用隐藏密码方式
mysql -u root -p 明文密码   //直接输入明文密码
mysql -u root -p           //回车后输入隐藏密码

9 禁止mysql读取本地文件

修改my.cnf文件,加入关闭信息

vim /etc/my.cnf
加入如下内容
[mysqld]
local_infile=0

或者添加启动选项

用脚本开启mysql
mysql_safe --local_infile=0 --user=mysql

10 禁止将表导出到文件

  • 在mysql中修改用户的文件权限
use mysql
update user set File_priv='N' where user='用户名';
  • 检查配置文件是否存在不合理信息
grep secure_file_priv /etc/my.cnf
secure_file_priv=xxx路径

11 日常备份数据库

手动备份数据库可以防止密码明文储存

mysqldump --user=root --all-databases --flush-privileges --lock-all-tables \ --master-data=1 --flush-logs --triggers --routines --events \ --hex-blob > 备份路径/文件名时间戳.sql

还原数据库

mysql -u 用户名 -p 密码 数据库名<备份的文件名

http://www.ppmy.cn/news/62945.html

相关文章

接口自动化测试之HTTP协议详解(敢称全网最全)

目录 协议 OSI模型 HTTP URL 报文 响应报文 HTTP扩展 协议 简单理解&#xff0c;计算机与计算机之间的通讯语言就叫做协议&#xff0c;不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则&#xff0c;标准或约定的集…

【django开发手册】DRF自动缓存应用实践分享——缓存注解详解及实现原理

本文节选自笔者博客&#xff1a;https://www.blog.zeeland.cn/archives/23r9oiasaaa &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是Zeeland&#xff0c;全栈领域优质创作者。&#x1f4dd; CSDN主页&#xff1a;Zeeland&#x1f525;&#x1f4e3; 我的博客&#…

改进YOLOv8 | 即插即用篇 | CVPR2023最新注意力 | 《BiFormer:视觉变换器与双层路由注意力》

作为视觉变换器的核心构建模块,注意力是一种强大的工具,可以捕捉长程依赖关系。然而,这种强大的功能付出了代价:计算负担和内存占用巨大,因为需要在所有空间位置上计算成对的令牌交互。一系列的研究尝试通过引入手工制作和与内容无关的稀疏性来缓解这个问题,例如将注意力…

rk3568 系统移植和编译

1。 硬件问题 尽量根据原版 evb 开发版 pcb 进行布线和移植&#xff0c;切记不可自行走线。 emmc 和 ddr4 选型都有要求的&#xff0c;按照硬件手册进行设计 2。软件问题 2.1 目前固件系统选用1.3.2 版本进行设计 解压后运行 .repo/repo/repo sync -c 更新代码 2.2 ubo…

用 Bitmap 实现亿级海量数据统计

在移动应用的业务场景中&#xff0c;我们需要保存这样的信息&#xff1a;一个 key 关联了一个数据集合。 常见的场景如下&#xff1a; 给一个 userId &#xff0c;判断用户登陆状态&#xff1b; 显示用户某个月的签到次数和首次签到时间&#xff1b; 两亿用户最近 7 天的签到…

PS VR创始成员:瑕不掩瑜,PS VR2是跨世代的飞跃

今年2月&#xff0c;索尼次世代VR头显PS VR2正式发售&#xff0c;这款立项近7年的产品受到了游戏玩家和从业者广泛关注&#xff0c;市面上也有很多种不同的测评报告。PS VR项目创始成员、前索尼沉浸式体验专家、高级VR游戏设计师Jed Ashforth也发表了自己对于该头显的一些看法&…

放弃40k月薪的程序员工作,选择公务员,我来分享一下看法

我有一个朋友&#xff0c;拒绝了我为他提供的4万薪水的工作&#xff0c;去了一个体制内的银行&#xff0c;做程序员&#xff0c;即使薪水减半。他之前在北京一家大公司做程序员&#xff0c;一个月30k。当我开始创业时&#xff0c;我拉他来和我一起干&#xff0c;但那时我们太小…

Accesss数据库的那点事

Accesss数据库的那点事 1.Access的简介 Access&#xff08;全称为Microsoft Access&#xff09;是一个关系型数据库管理系统&#xff08;RDBMS&#xff09;。它是由微软公司开发的数据库软件&#xff0c;用于创建、管理和操作数据库应用程序。 Access提供了一个可视化的开发环…