暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 要知道哪些用户删除数据

askTom 2017-04-24
330

问题描述



我们正在做数据仓库项目知道,运行作业后通过ETL它显示数据加载,第二天没有数据在表。现在我们想知道哪个用户删除数据,一件事但我们不是DB team.QA团队

专家解答

除非你有一些策略来预见这一点,否则这并不容易,因为有各种各样的方式来删除数据 (截断、丢弃、直接模式操作),所有这些可能都没有足够详细的记录来检测 * 谁 * 之后的事实。

最终... 这意味着您的数据库中存在安全问题。

您可以探索一些选择:

1) 闪回-查看对表进行了哪种交易-下面的示例

SQL> SELECT deptno, dname,
  2       VERSIONS_STARTTIME
  3      ,VERSIONS_XID
  4      ,VERSIONS_OPERATION
  5  FROM dept
  6  VERSIONS BETWEEN
  7     TIMESTAMP SYSTIMESTAMP - INTERVAL '20:00' MINUTE TO SECOND
  8     AND SYSTIMESTAMP
  9  WHERE deptno = 10;

    DEPTNO DNAME          VERSIONS_STARTTIME       VERSIONS_XID     V
---------- -------------- ------------------------ ---------------- -
        10 UNKNOWN        03-SEP-08 11.53.45 PM    0200100060040000 U
        10 MONEY GRABBERS 03-SEP-08 11.53.36 PM    0600050065040000 U
        10 FINANCE        03-SEP-08 11.53.24 PM    09000D001D050000 U
        10 BEAN COUNTERS  03-SEP-08 11.53.12 PM    01001A00EA030000 U
        10 ACCOUNTING
复制


然后,事务ID可用于查找可能产生一些信息的UNDO_SQL。

2) LogMiner注意事务的存档重做日志

3) 返回v $ active_session_history或dba_hist_active_sess_history,以查看是否有长期运行的删除。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论