一、数据库主从配置
原理:
(1)master将数据改变记录到二进制日志中,也就是配置文件log-bin指定的文件
(2)Slave通过I/O线程读取master中的binary log events并写入到它的relay log
(3)Slave 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完 成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。

登录MySQL数据库:mysql -uroot -p
Ubuntu IP:192.168.0.129
1、修改master和slave的配置文件/etc/my.cnf

2、创建用于赋值操作的用户tian
CREATE USER ‘tian’@‘localhost’ IDENTIFIED BY ‘1’;
GRANT REPLICATION SLAVE ON . TO ‘tian’@‘localhost’;
刷新授权表信息
flush privileges;
获取主节点当前binary log文件名和位置position
show master status;

3、在从slave节点上设置主节点参数
CHANGE MASTER TO MASTER_HOST=‘localhost’, MASTER_USER=‘tian’, MASTER_PASSWORD=‘1’, MASTER_LOG_FILE=‘binlog.000002’, MASTER_LOG_POS=1168;

4、查看主从同步状态

5、开启主从同步,并查看主从同步状态
start slave;
show slave status\G;

二、数据库备份
备份指定库中的部分表(备份shool数据库中的student表):
mysqldump -uroot -p school student >school-student.sql
配置一个或多个完整的库
mysqldump -uroot -p school >school.sql
备份所有库
Mysqldump -u root -p --all-databases >all.sql

备份数据库school:mysqldump -uroot -p school > /home/school.sql

三、数据库恢复
1、进入MySQL数据库,彻底啊删除school数据库,然后重新创建school数据库

2、恢复数据库
第一种方法:
mysql -u root -p school < /home/school.sql

查看恢复后的数据库

第二种方法:
(1)先删除数据库school

(2)再创建数据库school,并使用数据库school

(3)导入备份文件
source /home/school.sql

(4)可以查看到恢复了删除之前的数据

四、数据库安全策略设置
1、账号
以普通账户安全运行mysqld,禁止mysql以root账号权限运行,攻击者可能通过mysql获取系统root超级用户权限,完全控制系统。

2、口令
方法一:shell命令
Mysqladmin -u root -p password ‘123456’;
方法二:MySQL数据库命令
update user set password=password(‘123456’) where user=’root’ and host=’localhost’;
3、权限设置
授权用户权限:grant 权限 on 权限范围 to 用户;
回收权限:revoke 权限 on 范围 from 用户;

(1)查看权限show grant;

(2)使用GRANT命令定义用户的访问权。
仅能从school数据库的student表中使用select,无法改变数据库中这个表和其他表的任何数据。

(3)revoke命令从一个用户移除访问权

4、日志审计
数据库应配置日志功能
(1)、查看所有的log命令。

(2)、查看具体的log指令

5、禁用或限制远程访问
禁止网络连接,防止猜解密码攻击,溢出攻击和嗅探攻击。
如果数据库不需远程访问,可以禁止远程tcp/ip连接, 通过在mysqld服务器中参数中添加 --skip-networking 启动参数来使mysql不监听任何TCP/IP连接,增加安全性。强迫MySQL仅监听本机,方法是在my.cnf的[mysqld]部分增加下面一行:bind-address=127.0.0.1

5、禁用local infile
因为在某些情况下,local infile命名可被用于访问操作系统上的其他文件(如/etc/passwd)

为禁用local infile命令,在mysql配置文件中增加‘set-variable=local-infile=0’参数。

五、数据库安全审计
数据库审计能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。
方法一:Genreal Log
默认情况下,MySQL不开启General log;开启General log后,MySQL将所有到达MySQL Server的SQL语句记录下来。
(1)查看General Log开启情况:执行SQL命令show variables like '%general_log%’ ;可以看到默认general_log是OFF的:

(2)开启General Log: 执行SQL命令set global general_log=on 而后查看general_log打开了:

3、验证:general_log打开后,所有SQL的访问都会记录在general_log_file指向的日志文件。
执行几个sql语句

然后查看/var/lib/mysql/ubuntu.log日志文件里面的内容,可以发现所做的操作在日志里:

方法二:BinLog+Init_connect
BinLog是MySQL操作时留下的日志,BinLog一方面可以用在数据库的恢复与主从复制上,另外一方面可以用来做数据库的审计。由于BinLog日志里面无法查询是谁在哪个时间段登录的等信息,缺少审计必要的信息。在MySQL中,每个连接都会先执行init_connect进行连接的初始化,我们可以在这里获取用户的登录名称和thread ID值。然后配合BinLog,就可以追踪到每个操作语句的操作时间,操作人等信息,再加上BinLog的日志信息实现审计。
方法三:使用审计插件
六、数据库安全基线检查
1、禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力,编辑Mysql配置文件/etc/my.cnf,在mysqld 段落中配置local-infile参数为0,并重启mysql服务:local-infile=0

2、修改默认3306端口,避免使用熟知的端口,降低被初级扫描的风险。编辑/etc/my.cnf文件,mysqld 段落中配置新的端口参数,并重启mysql服务:port=3506

3、为Mysql服务使用专用的最低特权帐户,使用最低权限帐户运行服务可减小MySQL天生漏洞的影响。受限帐户将无法访问与MySQL无关的资源。使用非root和非sudo权限用户启动mysql服务。
4、禁止使用–skip-grant-tables选项启动Mysql服务 ,使用此选项,会导致所有客户端都对所有数据库具有不受限制的访问权限。编辑Mysql配置文件/etc/my.cnf,删除skip-grant-tables参数,并重启mysql服务
5、删除’test’数据库 ,测试数据库可供所有用户访问,并可用于消耗系统资源。删除测试数据库将减少mysql服务器的攻击面。登陆数据库执行以下SQL语句删除test数据库:DROP DATABASE test;

6、确保配置了log-error选项,启用错误日志可以提高检测针对mysql和其他关键消息的恶意尝试的能力。编辑Mysql配置文件/etc/my.cnf,在mysqld_safe 段落中配置log-error参数,<log_path>代表存放日志文件路径,如:/var/log/mysqld.log,并重启mysql服务:
log-error=<log_path>

7、确保没有用户配置了通配符主机名,避免在主机名中只使用通配符,有助于限定可以连接数据库的客户端,否则服务就开放到了公网。执行SQL更新语句,为每个用户指定允许连接的host范围。 1. 登录数据库,执行use mysql; ; 2. 执行语句select user,Host from user where Host=’%’;查看HOST为通配符的用户; 3. 删除用户或者修改用户host字段,删除语句:DROP USER ‘user_name’@’%’; 。更新语句:update user set host = <new_host> where host = ‘%’;。 4. 执行SQL语句:
OPTIMIZE TABLE user;
flush privileges;

8、匿名登陆检查 ,检查mysql服务是否允许匿名登录。
登陆Mysql数据库,执行以下命令删除匿名帐户:
delete from user where user=’’;
flush privileges;

9、禁用symbolic-links选项 ,编辑Mysql配置文件/etc/my.cnf,在mysqld 段落中配置skip_symbolic_links=yes,并重启mysql服务。

10、确保MYSQL_PWD环境变量未设置,确保MYSQL_PWD环境变量未设置。删除系统环境变量中Mysql密码(MYSQL_PWD)配置。
11、确保log-raw选项没有配置为ON,当log-raw记录启用时,有权访问日志文件的人可能会看到纯文本密码。编辑Mysql配置文件/etc/my.cnf,删除log-raw参数。

基于mysql8实现数据库安全审计、容灾备份、数据恢复实验相关推荐

  1. 大亚湾国土资源数据库异地容灾备份采购项目

    随着的大亚湾区国土资源信息化建设的不断深化,国土资源信息化成果已经由最初的服务国土资源管理变为支撑全区基础地理信息服务.金土工程.数字大亚湾地理空间框架.不动产数据和"四规合一"空 ...

  2. 云呐数据库的容灾备份,数据容灾包括数据的备份和恢复吗

    备份也是容灾的一种方式,应用级的备份是最传统的,在应用层进行复制,一般成本低廉.而这些中小型企业的备份容灾都十分初级,粗糙且不容乐观.这是因为备份容灾的市场,还普遍集中在如金融行业这样的大型企业上.头 ...

  3. oracle流复制实现,Oracle流复制技术的基本概念、工作流程及其容灾备份

    龙源期刊网 http://www.doczj.com/doc/9e45114b3186bceb18e8bb1b.html Oracle流复制技术的基本概念.工作流程及其容灾备份 作者:周军 来源:&l ...

  4. 云呐容灾备份策略,存储容灾备份系统

    互联网科技不断发展进步的今天,时刻面临着数据丢失.数据泄露.人为误删除.恶意篡改.黑客攻击.病毒等种种威胁.保护数据安全这一迫切需求极大的促进了国内外容灾备份市场的快速发展,容灾备份领域也同样经历了一 ...

  5. 洛阳市住房公积金管理中心数据容灾备份系统建设项目

    项目需求 本次采购项目为数据容灾备份系统建设项目,共一个标段,预算控制金额85万元.资金来源:财政投资.政府采购政策要求:不接受进口产品,支持中小微(监狱)企业. 一.项目背景 按照"豫建金 ...

  6. 数据库备份方案及容灾备份(Mysql,SqlServer,Oracle)

    备份文件目录结构 备份文件总目录databak: databak/Installation environment--环境备份目录 databak/project/package--项目部署包备份目录 ...

  7. 重庆市公安局北碚分局所需容灾备份设备及软件采购

      项目编号:BBZC12-106-1 项目名称:重庆市公安局北碚分局所需容灾备份设备及软件采购 重庆市北碚区公共资源综合交易中心 二〇一二年六月二十五日 第一部分 招标邀请书 重庆市北碚区公共资源综 ...

  8. 博罗县房产管理局应用级本地容灾备份系统采购项目

    项目技术规格.参数及要求:  (一)采购清单 序号 名称 配置 数量 单位 1 服务器 CPU:2 *E5-2650 v3 内存:4*16G 硬盘:4 块300GB 6G SAS 10K 2 台 2 ...

  9. 天津检验检疫局完成核心业务容灾备份系统建设

    近年来,天津检验检疫局全面落实科学发展观,在总局的大力支持下,各项工作取得重大进步.完成了以"三集中"为核心的业务模式改革.机构改革.事业单位改革为代表的三大改革,综合实力显著增强 ...

最新文章

  1. WEB客户端和服务器
  2. 【版本工具】SVN-E155036 Working copy ... is too old Please see the ‘svn upgrade‘ command
  3. AD 脚本kixtart运用之六(outlook邮件批量生成签名)
  4. 大数据挖掘在销售管理中的应用价值
  5. 坚果云 operationnotallowed webdav_妙用 NAS 服务,将你的知识库和音乐库搬上「云」...
  6. Failed to create the part‘s controls解决方法
  7. jsp table 中多出行数据_数据分析 | 如何基于高斯曲线拟合15分钟生活圈距离衰减规律...
  8. 学习笔记--maven
  9. java常见类型的转化以及风险
  10. HTML CSS整理笔记
  11. 程序员的奋斗史(三十)——近期微信公众平台更新文章集锦
  12. 医疗实施-常用的英文简称
  13. 安装罗斯蒙特HART475协议中文版手操器的系统卡和电池
  14. android 3d翻转动画 viewpage,利用ViewPager实现3D画廊效果及其图片加载优化
  15. HTML中 src alt align 分别是什么意思?
  16. 〖Python〗-- 面向对象编程、继承、组合、接口和抽象类
  17. 【毕业设计】基于单片机的便携式空气质量检测仪 - 物联网 嵌入式
  18. iOS开发者的一些前端感悟
  19. 致我们渐行渐远的青春——给曾经的你
  20. LCA实现的三种不同的方法

热门文章

  1. 机器学习之道学习笔记
  2. 6666666666欢迎使用CSDN-markdown编辑器
  3. 微信竟然可以查出行轨迹了?
  4. 智果内容付费系统php开源版本,智果内容付费系统商业版2.1.0版本更新啦~
  5. 自动生成logo的网址
  6. 13个可实现超棒数据可视化效果的Javascript框架
  7. 【菜鸟读论文】2019_Guided Stereo Matching
  8. 赋能数字普惠金融 浪潮整机柜服务器助力省级农信IT架构革新
  9. 供电频率高对计算机机房危害,供配电专业知识点
  10. 小技巧:罗技一个接收器连接多个鼠标或键盘