2021-04-27 kk日记,oracle开发数据被删除调查

背景

今天,收到开发同学的通知“开发环节数据库部分表被重建了,导致数据丢失,开发受阻。”,帮忙查一下什么原因。

 

问题

 为什么数据表被重建?为了解答这个问题,先要找到这个人,再问他的操作。

 

分析

1、 确认数据表被重建的时间点。

    select * from dba_objects where owner='XX' order by created desc;

2、根据时间点找到对应操作的用户,如果你的数据库管理做得好,打开了必要的审计是可以做得到的。否则这一步就变得有不确定性了。

   有开通审计的情况下,直接查:

   select * from dba_audit_trail where timestamp between to_date('2021-04-26 14:10','yyyy-mm-dd hh24:mi') and to_date('2021-04-26 14:20','yyyy-mm-dd hh24:mi');

  没有开通审计的情况下,直接查【这个要看运气,可能采样不到】:

select * from gv$active_session_history 
where user_id=129 and sample_time between to_date('2021-04-26 14:10','yyyy-mm-dd hh24:mi') and to_date('2021-04-26 14:20','yyyy-mm-dd hh24:mi');

运气很好,我们找到记录:

3、根据上面到结果我们只要找到对应的machine 是登记在那为同学下面就可以了,但是运气不好,这个machine不在登记列表中。

 

4、 查找对应的ip , 根据对应的时间登陆到数据库主机,查看监听日志:

4.1   获取监听日志所在位置, 执行命令:lsnrctl status 

       Listener Log File         /u01/....../listener/alert/log.xml

4.2  打开日志目录,找到对应时间和端口的日志,这时ip确定了。

 <txt>26-APR-2021 14:15:17 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=xxx))(SERVICE_NAME=xxx)) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.x.x.x)(PORT=51506)) * establish * CBSD * 0

5、 确定ip后,找到网络和安全的同学,立刻找到对应的工位和人了。

 

6、数据恢复,如果时间短的话采用flashback 就可以,长了的话,由于开发环境没有备份,就只能重新做这部分的数据了。

 

总结

1、 权限要控制好

2、 必要的审计要打开。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值