数据库安全之Mysql数据库安全加固_[mysql]部分中添加“log = var log mylogfile

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

这样就创建了一个名为:vvera 密码为:vv@122 的用户。然后登录一下。
在这里插入图片描述
删除不用的用户

应删除或锁定与数据库运行、维护等工作无关的账号

移除匿名账户和废弃的账户

DROP USER语句用于删除一个或多个MySQL账户。要使用DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE权限。账户名称的用户和主机部分与用户表记录的User和Host列值相对应。使用DROP USER,您可以取消一个账户和其权限,操作如下:

ps –ef | grep mysqld

#grep -i user /etc/my.cnf

该语句可以删除来自所有授权表的帐户权限记录。红色标识的无用账户都可以删除。
在这里插入图片描述
使用操作命令之后的结果

drop user ‘’@‘mysql’,‘’@‘localhost’,‘root’@‘::1’,‘root’@‘mysql’;

在这里插入图片描述
说明

DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。

检测操作:mysql 查看所有用户

create user vvera@‘指定ip地址’ identified by ‘safe6@2020!’;

在这里插入图片描述
依次检查所列出的账户是否为必要账户,删除无用户或过期账户。

注意:仔细核对,防止误删

口令策略加固
检查帐户默认密码和弱密码,建议使用5.7之后版本提高安全性

修改帐户弱密码如要修改密码,执行如下命令:检查本地密码:(注意,5.7之前管理帐号root默认是空密码)

mysql> update user set password=password(‘vv@122’) where user=‘root’;
mysql> flush privileges;

检测方法

mysql> use mysql;
mysql> select Host,User,Password,Select_priv,Grant_priv from user;

在这里插入图片描述
用户权限加固
在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

有些应用程序是通过一个特定数据库表的用户名和口令连接到MySQL的,安全人员不应当给予这个用户完全的访问权。如果攻击者获得了这个拥有完全访问权的用户,他也就拥有了所有的数据库。查看一个用户许可的方法是在MySQL控制台中使用命令SHOW GRANT

SHOW GRANTS FOR ; ‘vvera’@‘localhost’
为定义用户的访问权,使用GRANT命令。在下面的例子中,vvera仅能从tanggula数据库的mserver表中选择:
GRANT SELECT ON tanggula. mserver TO ‘vvera’@‘localhost’;
FLUSH PRIVILEGES;
vvera用户就无法改变数据库中这个表和其它表的任何数据。
如果你要从一个用户移除访问权,就应使用一个与GRANT命令类似的REVOKE命令:
REVOKE SELECT ON tanggula. mserver FROM ‘vvera’@‘localhost’;
FLUSH PRIVILEGES;
权限权限范围给谁授权权限范围grant allON .to vvera授权vvera全库权限grant selectON tanggula.*to vvera授权vvera唐古拉数据库查看权限grant createON tanggula.*to vvera授权vvera数据库添加权限

授权并创建用户,并指定密码

grant 权限 on 权限范围 to 用户 identified by ‘密码’
回收权限revoke 权限 on 范围 from 用户

日志审计加固
数据库配置日志功能(切记不要用root用户,防止日志写shell)

show variables like ‘log_%’;查看所有的log命令

在这里插入图片描述

show variables like ‘log_bin’;查看具体的log命令

在这里插入图片描述
启用日志记录让你可以检测服务器上的活动,这样你就可以分析失败的登录尝试和敏感文件的访问记录,以便了解是否存在向你的服务器和数据库发起的恶意活动。
你只需要把log =/var/log/mylogfile指令添加到MySQL配置文件中,就可以手动启用日志记录功能。
日志记录仅适用于查询数量有限的数据库服务器。对于信息量大的服务器,这可能会导致高过载。

禁用或限制远程访问
尽可能的禁止远程网络连接,防止猜解密码攻击,溢出攻击和嗅探攻击。

远程访问

直接通过本机之外的计算机改变生产环境中的数据库是异常危险的。

有时,管理员会打开远程主机对数据库的访问(应当设置为指定ip):

GRANT ALL ON . TO ‘root’@’%’;
如上这种这其实是完全放开了所以ip对root的访问。所以应该把重要的操作限制给特定主机:
GRANT ALL ON . TO ‘root’@‘localhost’;
GRANT ALL ON . TO ‘root’@‘指定ip’ ;
FLUSH PRIVILEGES;
在这里插入图片描述

如果数据库不需远程访问,可以禁止远程tcp/ip连接, 通过在mysqld服务器中参数中添加 --skip-networking 启动参数来使mysql不监听任何TCP/IP连接,增加安全性。强迫MySQL仅监听本机,方法是在my.cnf的[mysqld]部分增加下面一行:bind-address=127.0.0.1

如果非要开启远程访问,建议设置指定ip连接。

移除测试自带的test数据库和禁用LOCAL INFILE OUTFILE
删除可以匿名访问的test数据库和防止非授权用户访问本地文件

移除自带的测试(test)数据库

在默认安装的MySQL中,匿名用户可以访问test数据库。我们可以移除任何无用的数据库,以避免在不可预料的情况下访问了数据库。因而,在MySQL控制台中,执行:
在这里插入图片描述

DROP DATABASE test;

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-TtwXkOFr-1713561400282)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值