MySQL安全加固

MySQL安全加固

口令加固

show plugins;
查看当前插件信息,了解到当前已开启插件

安装validate_password插件
install plugin validate_password soname 'validate_password.dll';

查看当前密码规则强度
SELECT @@validate_password_policy;

查看密码策略的具体信息
SHOW VARIABLES LIKE 'validate_password%';

通过创建弱口令用户,验证插件是否生效
CREATE USER “test1”@”localhost” IDENTIFIED BY "123456";

账户配置

检查匿名账户:如果在安装MySQL的时候没有特殊措施,那么mysql会默认含有匿名用户,如下结果:直接执行mysql,不指定用户信息便能够登录。

查看匿名账户
SELECT user,authentication_string FROm mysql.user;

删除匿名账户
DELETE FROM mysql.user WHERE user=””;

修改默认root管理用户账户
UPDATE user SET user="newroot" WHERE user="root";

权限与访问控制

数据库授权,一般用户权限有以下几种:

alter: 修改已存在的数据表(例如增加/删除列)和索引
create: 建立新的数据库或数据表
delete: 删除表的记录
drop:删除数据表或数据库
index: 建立或删除索引
insert: 增加表的记录
select: 显示/搜索表的记录
update:修改表中已存在的记录

特别的权限
ALL:允许做任何事(和root一样)
USAGE:只允许登录–其它什么也不允许做

授权命令格式:
grant privileges ON database.table TO ‘username’[@‘host’] [with grant
option]

  • privileges (权限列表),可以是 all ,表示所有权限,也可以是 select、
    update 等权限,多个权限之间用逗号分开
  • ON 用来指定权限针对哪些库和表,格式为 数据库.表名 ,点号前面用来指
    定数据库名,点号后面用来指定表名, . 表示所有数据库所有表
  • TO 表示将权限赋予某个用户, 格式为 username@host ,@前面为用户名, @后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方
  • WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人

授权原则:

只授予能满足需要的最小权限,比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限
创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段
初始化数据库的时候删除没有密码的用户,安装完数据库的时候会自动创建一些用户,这些用户默认没有密码
为每个用户设置满足密码复杂度的密码
定期清理不需要的用户,回收权限或者删除用户

查看用户权限
SELECT user,host FROM user;

root用户,通过命令赋予tt用户其它权限
GRANT SELECT,INSERT,UPDATE,DELETE ON tt.* TO tt@'localhost' IDENTIFIED BY 'Asxz!@#9';

可以看到对tt用户具有了查看权限,并且通过写入信息可以确定具有增加数据权限

授权可信任ip地址控制
只允许可信任的ip访问数据库,降低风险。在授权过程中,ip弱势%代替,则表明任意主机均可登录。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.109.129' IDENTIFIED BY '@Xsdff483.' WITH GRANT OPTION;

连接数限制
查看当前连接数配置
show variables like 'max_connections';

设置最大连接数为30

日志审核

MariaDB Audit Plugin 插件
查看审计参数
show variables like '%audit%';

查看默认插件目录
show variables like 'plugin_dir';

安装插件
install plugin server_audit soname 'server_audit.dll';

查看审计信息
show variables like '%audit%';

开启审计
set global server_audit_logging=on;

备份

mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执
行这些 insert 语句,即可将对应的数据还原。

命令格式为
mysqldump【选项】数据库名【表明】> 脚本名

备份脚本

rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%“
::创建存储的文件夹
if not exist "C:\mysql_backup" md "C:\mysql_backup“
::执行备份操作
mysqldump --opt --user=newroot --password= --host=127.0.0.1 --default-characterset=utf8 --events "tt" > C:\mysql_backup\backup_demo_%Ymd%.sql
::删除两周前的备份数据
forfiles /p "C:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path“
@echo on
rem ******Backup MySQL End******

补丁

满足业务正常运行的前提下,安装新版本,修补漏洞。
1.修复mysql漏洞,一般升级对应的小版本官方发布最新的小版本即可。
2.注意查看对应数据库版本及操作平台信息及升级后可能触发的BUG信息。
3.确认当前业务使用,可能存在封装好无法改变的应用的脚本触发到BUG信息。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super 硕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值