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

MYSQL 5.7.36 等保 建设记录

文章目录

  • 前言
  • 一、开启审计日志
    • 1.1 查看当前状态
    • 1.2 开启方式
    • 1.3 查看开启后状态
  • 二、密码有效期
    • 2.1 查看当前状态
    • 2.2 开启方式
    • 2.3 查看开启后状态
  • 三、密码复杂度
    • 3.1 查看当前状态
    • 3.2 开启方式
    • 3.3 查看开启后状态
  • 四、连接控制
    • 4.1 查看当前状态
    • 4.2 开启方式
    • 4.3 查看开启后状态
  • 五、连接超时
    • 5.1 查看当前状态
    • 5.2 开启方式
    • 5.3 查看开启后状态
  • 六、三权分立,使用init-connect记录登陆日志
    • 6.1 创建管理员用户并赋予全部权限
    • 6.2 创建操作员用户并赋予业务数据库的权限
    • 6.3 创建审计员用户
    • 6.4 创建存放连接日志的数据库表
    • 6.5 赋予所有用户链接日志表的插入权限
    • 6.6 审计用户赋予连接日志表审计权限
    • 6.7 配置init-connect
  • 总结


前言

MYSQL 5.7.36 等保 建设记录

参考博文: MySql数据库之审计(开启log+设置init-connect实现无插件审计)
参考博文: 二级等保标准和解决方法(服务器,数据库,应用)
参考博文: 等保测评mysql实例


一、开启审计日志

1.1 查看当前状态

mysql>show variables like '%general_log%';
+------------------+-------------------------------------------------------+
| Variable_name    | Value                                                 |
+------------------+-------------------------------------------------------+
| general_log      | OFF                                                   |
| general_log_file | /var/lib/mysql/mysql-58f8894999-5sv88.log             |
+------------------+-------------------------------------------------------+

1.2 开启方式

按照一些帖子的记录,将记录写入到mysql.general_log表会导致服务的性能下降,所以需要将log_output配置为file类型;为了检测临时改成table类型也可以,不推荐长期配置为table类型。

配置文件mysql.cnf参数开启

[mysqld]
general_log = ON
log_timestamps = system
log_output = file

命令开启

set global general_log=on;
set log_timestamps = system;

1.3 查看开启后状态

mysql>show variables like '%general_log%';
+------------------+-------------------------------------------------------+
| Variable_name    | Value                                                 |
+------------------+-------------------------------------------------------+
| general_log      | ON                                                    |
| general_log_file | /var/lib/mysql/mysql-58f8894999-5sv88.log             |
+------------------+-------------------------------------------------------+

二、密码有效期

2.1 查看当前状态

mysql>show variables like '%password_lifetime%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| default_password_lifetime |  0    |
+---------------------------+-------+
1 row in set (0.00 sec)

2.2 开启方式

配置文件mysql.cnf参数开启

[mysqld]
default_password_lifetime=90

命令开启

set global default_password_lifetime=90;

2.3 查看开启后状态

mysql>show variables like '%password_lifetime%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| default_password_lifetime |  90   |
+---------------------------+-------+
1 row in set (0.00 sec)

三、密码复杂度

密码复杂度需要validate_password.so插件的支持

3.1 查看当前状态

mysql> show variables like 'validate_password%';
Empty set (0.01 sec)

3.2 开启方式

配置文件mysql.cnf参数开启

[mysqld]
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
validate_password_policy=2

命令开启

INSTALL PLUGIN validate_password SONAME 'validate_password.so';
set global validate_password_policy=2;
set global validate-password=FORCE_PLUS_PERMANENT;

3.3 查看开启后状态

mysql>show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | ON     |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

四、连接控制

连接控制需要connection_control.so插件的支持

4.1 查看当前状态

mysql> show variables like 'connection%';
Empty set (0.01 sec)

4.2 开启方式

配置文件mysql.cnf参数开启

[mysqld]
plugin-load-add=connection_control.so
connection-control-failed-connections-threshold = 5 
connection-control-min-connection-delay = 300000

命令开启

INSTALL PLUGIN validate_password SONAME 'connection_control.so';
set global connection-control-failed-connections-threshold = 5;
set global connection-control-min-connection-delay = 300000;

4.3 查看开启后状态

MySQL [(none)]> show variables like 'connection%';
+-------------------------------------------------+------------+
| Variable_name                                   | Value      |
+-------------------------------------------------+------------+
| connection_control_failed_connections_threshold | 5          |
| connection_control_max_connection_delay         | 2147483647 |
| connection_control_min_connection_delay         | 300000     |
+-------------------------------------------------+------------+
3 rows in set (0.00 sec)

五、连接超时

5.1 查看当前状态

mysql> show global variables like'connect_timeout';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| connect_timeout | 10    |
+-----------------+-------+
1 row in set (0.03 sec)mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set (0.00 sec)mysql> show variables like 'interactive_timeout';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 28800 |
+---------------------+-------+
1 row in set (0.01 sec)

5.2 开启方式

配置文件mysql.cnf参数开启

[mysqld]
wait_timeout = 1800 
interactive_timeout = 1800

命令开启

set global wait_timeout = 1800;
set global interactive_timeout = 1800;

5.3 查看开启后状态

mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 1800  |
+---------------+-------+
1 row in set (0.00 sec)mysql> show variables like 'interactive_timeout';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 1800  |
+---------------------+-------+
1 row in set (0.01 sec)

六、三权分立,使用init-connect记录登陆日志

6.1 创建管理员用户并赋予全部权限

create user 'admin'@'%' identified by 'Admin@2024';
GRANT ALL privileges on *.* to 'admin'@'%' with grant option;

查看创建结果

mysql> show grants for 'admin'@'%';
+--------------------------------------------------------------+
| Grants for admin@%                                           |
+--------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION |
+--------------------------------------------------------------+
1 rows in set (0.00 sec)

6.2 创建操作员用户并赋予业务数据库的权限

create user 'develop'@'%' identified by 'Develop@2024';
GRANT ALL privileges on yewu.* to 'develop'@'%' with grant option;

查看创建结果

mysql> show grants for 'develop'@'%';
+-----------------------------------------------------------------------+
| Grants for develop@%                                                  |
+-----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'develop'@'%'                                   |
| GRANT ALL PRIVILEGES ON `yewu`.* TO 'develop'@'%' WITH GRANT OPTION |
+-----------------------------------------------------------------------+
2 rows in set (0.00 sec)

6.3 创建审计员用户

create user 'auditor'@'%' identified by 'Auditor@2024';

查看创建结果

mysql> show grants for 'auditor'@'%';
+-----------------------------------------------------------------------+
| Grants for auditor@%                                                  |
+-----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'auditor'@'%'                                   |
+-----------------------------------------------------------------------+
1 rows in set (0.00 sec)

6.4 创建存放连接日志的数据库表

create database auditlog;
create table auditlog.t_audit(id int not null auto_increment,thread_id int not null,login_time timestamp,localname varchar(50) default null,matchname varchar(50) default null, primary key (id)
)ENGINE=InnoDB default charset=utf8 comment '审计用户登录信息';

6.5 赋予所有用户链接日志表的插入权限

拼接赋权语句

mysql> select concat("grant insert on auditlog.t_audit to '",user,"'@'",host,"';") from mysql.user;
+----------------------------------------------------------------------+
| concat("grant insert on auditlog.t_audit to '",user,"'@'",host,"';") |
+----------------------------------------------------------------------+
| grant insert on auditlog.t_audit to 'admin'@'%';                     |
| grant insert on auditlog.t_audit to 'auditor'@'%';                   |
| grant insert on auditlog.t_audit to 'develop'@'%';                   |
| grant insert on auditlog.t_audit to 'root'@'%';                      |
| grant insert on auditlog.t_audit to 'mysql.session'@'localhost';     |
| grant insert on auditlog.t_audit to 'mysql.sys'@'localhost';         |
| grant insert on auditlog.t_audit to 'root'@'localhost';              |
+----------------------------------------------------------------------+
7 rows in set (0.00 sec)

执行赋权语句

grant insert on auditlog.t_audit to 'admin'@'%';                     
grant insert on auditlog.t_audit to 'auditor'@'%';                   
grant insert on auditlog.t_audit to 'develop'@'%';                   
grant insert on auditlog.t_audit to 'root'@'%';                      
grant insert on auditlog.t_audit to 'mysql.session'@'localhost';     
grant insert on auditlog.t_audit to 'mysql.sys'@'localhost';         
grant insert on auditlog.t_audit to 'root'@'localhost';              

6.6 审计用户赋予连接日志表审计权限

拼接赋权语句

grant select,insert,delete on auditlog.t_audit to 'auditor'@'%' ;

6.7 配置init-connect

配置文件mysql.cnf参数开启

[mysqld]
init_connect='insert into auditlog.t_audit(id,thread_id,login_time,localname,matchname) values(null,connection_id(),now(),user(),current_user());'

总结

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • RGB和HSL是两种不同的颜色表示模型,每种模型都有其特定的用途和含义。
  • InfluxDB Studio 下载,时序数据库Windows图形界面操作
  • C++:智能指针了解
  • Redis 实现消息队列
  • 拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式
  • 【算法刷题】合并两个有序链表、获取链表的中间节点、反转链表
  • 【面试经验】24届前端校招 字节、阿里、美团、快手、腾讯面试经验汇总
  • 【扒代码】图像数据 Transformer
  • Eclipse插件之Java Dependency Viewer(显示类和包的关系图)
  • 日志Log程序(C++)
  • 深度学习每周学习总结N6:使用Word2vec实现文本分类
  • Spring Cloud全解析:注册中心之zookeeper注册中心
  • 4.MySQL数据类型
  • 2023华为od机试C卷【围棋的气】python实现
  • 哈萨克语驾考学习软件求推荐?
  • centos安装java运行环境jdk+tomcat
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Idea+maven+scala构建包并在spark on yarn 运行
  • iOS 颜色设置看我就够了
  • leetcode386. Lexicographical Numbers
  • pdf文件如何在线转换为jpg图片
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 一个完整Java Web项目背后的密码
  • 用mpvue开发微信小程序
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #include
  • #pragma once
  • (1)(1.13) SiK无线电高级配置(五)
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (9)STL算法之逆转旋转
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (poj1.3.2)1791(构造法模拟)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (简单) HDU 2612 Find a way,BFS。
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .net core 依赖注入的基本用发
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET MVC 验证码
  • .NET 反射 Reflect
  • .Net 路由处理厉害了
  • .NET/C# 的字符串暂存池
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET技术成长路线架构图
  • .net解析传过来的xml_DOM4J解析XML文件
  • /etc/sudoers (root权限管理)
  • @RequestMapping 和 @GetMapping等子注解的区别及其用法