原因:

   公司由于正在发展期,服务器上线业务上线,因为我是安全运维,从安全考虑我把线上mysql数据库的权限收回,因为以前权限太大。

   wKioL1brZ83iSRitAAAiqATGW8g968.png

   删除掉root,还有一个账号的所有权限%,我们都知道%代表任意地址登录,如果被黑,可以得到数据库密码然后破解服务器密码然后可以任意乱搞,为了安全着想,所以我设置了iptables和ssh权限。

/etc/hosts.allow

sshd:*.*.*.*:allow                             //只允许公司ip SSH登录

 

/etc/hosts.deny

sshd :ALL                                               //拒绝所有SSH登录



然后通过***连接公司内网在跳转到内部服务器 然后在ssh外网服务器

wKioL1bracrAL-yyAAA97aIhM8U350.png

 Connecting to 192.168.1.21:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Tue Mar 15 09:27:02 2016 from 192.168.1.158
[root@localhost ~]# ssh 外网服务器
root@外网服务器's password: 
Last login: Thu Mar 17 16:52:38 2016 from 公司地址


   这样本来是没问题的,但是研发开发的mysql存储过程是w这个用户,然后用的是%这个任意地址访问。

而且权限是all,这样就报错了。并且我处理mysql权限的时候没有及时跟研发沟通,尚自做主删除了%的权限。

wKioL1braqXBbgLUAAER9WjmL0c300.png   然后半夜 客户提现的时候,都报错所有人多提现了。

wKiom1bravuikUHGAAIFL5JM868489.png


处理方式:

首先我调整了系统时间,让所有用户无法提现

date -s 03/17/2016

date -s 23:30:00


然后创建用户w用户all权限,先让其正常使用

因为做了计划任务自动备份mysql

 2016-03-17_23-40-01 

然后做过主从,对比备份数据和线上数据

然后还原数据

wKiom1brbV6xCHDhAAAGSkl2vlU023.png

然后调回系统时间

ntpdate time.nist.gov


刷新redis缓存

flushall


教训:

   擅做主张:因为运维部门就我一个人,上面是研发部经理,没有及时跟研发部经理沟通删除权限用户造成事故。

   没有及时沟通:如果删除前,在讨论组里跟研发部门开发存储过程的同事沟通,及时更改存储过程用户,删除后就不会造成这个影响。

   经过这次事故后,以后做任务操作要跟领导说下,然后跟研发部沟通下,尽管如果没有他们的事,也可以沟通做了什么操作及时记录,还好及时补救,做了数据库备份,主从等操作。还原回去,现在数据正常。但是这个锅我还是要背的。毕竟是我自己的错,有错就认,及时更改。以后不犯。