概述
数据库是最好加上防火墙限定指定的ip才可以访问.但是每个人接收管理老库的时候,哪里敢随便加. 可以通过mysql的general log 抓取sql,指定这段时间那些访问过数据库,从而做防火墙就可以了.
步骤
- 开启mysql查询日志,需要注意磁盘是否充足.
- 过滤日志,为求准确,可以多几天的日志.
grep "Connect" DB-SERVER.log-2020-09-16 >>DB-SERVER.log-2020-09-16.Connect
#登录用户和ip在第4列,直接过滤筛选.
awk '{ print $4 }' wos-DB-SERVER.log-2020-09-16.Connect |sort |uniq -c |sort -nk 1
直接筛选再过滤甚至可以直接得出结果
awk '{ print $4 }' wos-DB-SERVER.log-2020-09-16.Connect |sort |uniq -c |sort -nk 1 |awk -F'@' '{ print $2 }' |sort |uniq -c |awk '{ print $2 }'
题外
如果不是mysql,是服务器的,话,那就可以用tcpdump.