============= 表ddl 审计==============

1、table信息

SQL> select * from test;

ID CUST_CREDIT_LIMIT TIME              PRICE NAME
--- ----------------- ------------ ---------- ----------
23 12 19-NOV-20 ab
29 12 20-NOV-20 abc
10 12 20-NOV-20 abc
50 12 20-NOV-20 abc
40 12 20-NOV-20 abc ============= 方式一 开启全库审计 =============
优点:简单明了,审计信息详细
缺点:增加资源消耗,审计表数据增量大
需要定时对审计表做备份清理 alter system set audit_sys_operations=TRUE scope=spfile;
alter system set audit_trail=DB_EXTENDED scope=spfile; ---DB_EXTENDED sql语句记录 SQL> show parameter audit; NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /oracle/app/oracle/admin/test/
adump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string DB_EXTENDED == 指定表审计
SQL> AUDIT UPDATE,DELETE,INSERT ON TEST.TEST by access; == 表更改数据 ==
-->crt工具连接
SQL> insert into test values (10,12,'24-APR-21',120,'ab');
SQL> update test set ID=24 where id=23;
SQL> delete from test where id=24;
-->PLSQL连接
update test set id=24 where id=29; ==== 查询审计信息 ==
set lines 300
col EXTENDED_TIMESTAMP for a40
col SQL_TEXT for a60
col os_user for a18
col db_user for a12
col USERHOST for a18
set pagesize 1000
select to_char(EXTENDED_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss'),SESSION_ID,os_user,DB_USER,USERHOST,SQL_TEXT
from DBA_COMMON_AUDIT_TRAIL ORDER BY EXTENDED_TIMESTAMP ASC;
--输出: TO_CHAR(EXTENDED_TI SESSION_ID OS_USER DB_USER USERHOST SQL_TEXT
------------------- ---------- ------------------ ------------ ------------------ ------------------------------------------------------
2021-04-24 20:28:15 4460757 oracle TEST test insert into test values (10,12,'24-APR-21',120,'ab')
2021-04-24 20:32:04 4460757 oracle TEST test update test set ID=24 where id=23
2021-04-24 20:35:36 4460757 oracle TEST test delete from test where id=24
2021-04-24 20:44:29 4460759 Administrator TEST WorkGroup\LZ-PC
2021-04-24 20:44:29 4460760 Administrator TEST WorkGroup\LZ-PC
2021-04-24 20:44:33 4460760 Administrator TEST WorkGroup\LZ-PC
2021-04-24 20:44:51 4460761 Administrator TEST WorkGroup\LZ-PC
2021-04-24 20:45:45 4460761 Administrator TEST WorkGroup\LZ-PC update test set id=24 where id=29 ================ 方式二、创建trigger审计 ============
tips:其他user创建trigger
优点:占用资源少,用户和空间可以自定义
缺点:没有全库审计记录的表审计信息详细 -->创建审计表
CREATE TABLE TEST.trig_sql
( "LT" DATE,
"SID" NUMBER,
"SERIAL#" NUMBER,
"USERNAME" VARCHAR2(30),
"OSUSER" VARCHAR2(64),
"MACHINE" VARCHAR2(32),
"TERMINAL" VARCHAR2(16),
"PROGRAM" VARCHAR2(64),
"SQLTEXT" VARCHAR2(2000),
"STATUS" VARCHAR2(30),
"CLIENT_IP" VARCHAR2(60)
); -->sys创建审计trigger 可以创建审计用户,trigger创建在指定用户下
create or replace trigger pri_test
after insert or update or delete on test.test
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF inserting THEN
INSERT INTO TEST.trig_sql
select sysdate,s.SID, s.SERIAL#, s.USERNAME, s.OSUSER,
s.MACHINE, s.TERMINAL, s.PROGRAM, q.sql_text line,
'INSERT',
sys_context('userenv','ip_address')
from v$sql q, v$session s
where s.audsid=(select userenv('SESSIONID') from dual)
and s.prev_sql_addr=q.address
AND s.PREV_HASH_VALUE = q.hash_value;
COMMIT;
ELSIF deleting then
INSERT INTO TEST.trig_sql
select sysdate,s.SID, s.SERIAL#, s.USERNAME, s.OSUSER,
s.MACHINE, s.TERMINAL, s.PROGRAM, q.sql_text line,
'DELETE',
sys_context('userenv','ip_address')
from v$sql q, v$session s
where s.audsid=(select userenv('SESSIONID') from dual)
and s.prev_sql_addr=q.address
AND s.PREV_HASH_VALUE = q.hash_value;
COMMIT;
ELSIF updating then
INSERT INTO TEST.trig_sql
select sysdate,s.SID, s.SERIAL#, s.USERNAME, s.OSUSER,
s.MACHINE, s.TERMINAL, s.PROGRAM, q.sql_text line,
'UPDATE',
sys_context('userenv','ip_address')
from v$sql q, v$session s
where s.audsid=(select userenv('SESSIONID') from dual)
and s.prev_sql_addr=q.address
AND s.PREV_HASH_VALUE = q.hash_value;
COMMIT;
END IF;
END;
/ -->表更改数据
CRT工具连接
SQL> insert into test values (66,22,'24-APR-21',666,'ab'); PLSQL连接
update test.test set id=24 where id=50; -->查询审计表信息
col USERNAME for a12
col OSUSER for a14
col MACHINE for a20
col SQLTEXT for a70
col status for a12
col CLIENT_IP for a20
select SID,USERNAME,OSUSER,MACHINE,SQLTEXT,STATUS,CLIENT_IP from TEST.trig_sql; SID USERNAME OSUSER MACHINE SQLTEXT STATUS CLIENT_IP
---- ------------ -------------- -------------------- ---------------------------------------------------------------------- ------------ --------------------
1 SYS oracle test select SID,USERNAME,OSUSER,MACHINE,SQLTEXT,STATUS from TEST.trig_sql UPDATE 192.168.154.1
38 SYS Administrator WorkGroup\LZ-PC begin :id := sys.dbms_transaction.local_transaction_id; end; UPDATE 192.168.154.1
39 SYS Administrator WorkGroup\LZ-PC begin :id := sys.dbms_transaction.local_transaction_id; end; UPDATE 192.168.154.1
40 SYS Administrator WorkGroup\LZ-PC select value from v$sesstat where sid = :sid order by statistic# UPDATE 192.168.154.1
40 SYS Administrator WorkGroup\LZ-PC select value from v$sesstat where sid = :sid order by statistic# UPDATE 192.168.154.1
41 SYS Administrator WorkGroup\LZ-PC begin :id := sys.dbms_transaction.local_transaction_id; end; UPDATE 192.168.154.1
41 TEST Administrator WorkGroup\LZ-PC begin :id := sys.dbms_transaction.local_transaction_id; end; UPDATE 192.168.154.1
37 TEST oracle test SELECT DECODE('A','A','1','2') FROM DUAL INSERT

oracle表ddl审计的更多相关文章

  1. 抓取oracle建表语句及获取建表ddl语句

    抓取oracle建表语句及获取建表ddl语句 1.抓取代码如下: 1.1.产生表的语法资料 DECLARE-- v_notPartTable VARCHAR2(1000):= '&2'; -- ...

  2. 数据库DDL审计

    一.为什么需要数据库DDL审计? DDL在生产系统中扮演非常重要的作用. 1)首先从业务角度来说,DDL可能意味着表结构变更,意味着新的版本即将发布,是个重要的时刻. 2)其次从运维角度来说,DDL尤 ...

  3. 【转】Oracle 表空间与数据文件

    --============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...

  4. oracle中ddl的管理

    因为某些原因,Oracle的ddl权限不能开放给用户. 之前采取的方式是,创建用户的时候不为其赋予create table 的权限. 但是在使用过程中发现该用户还是拥有alter table的权限. ...

  5. Oracle 表空间与数据文件

    -============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或多 ...

  6. Oracle表结构转Mysql表结构

    1. fnc_table_to_mysql 主体程序 create or replace function fnc_table_to_mysql ( i_owner in string, i_tabl ...

  7. oracle表分区以及普表转分区表(转)

    概述 Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操作的性能大大提高.此外,分区还可以极大简化常见的管理任务,分区是构建 ...

  8. oracle表分区、表分析及oracle数据泵文件导入导出开心版

    1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...

  9. Oracle 表连接

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)      (2)右外连接(右边的表不加限制)      (3)全外连接(左右两表都不 ...

随机推荐

  1. PowerShell-6.文件操作

    1.显示文本内容 Get-Content "°C:\\Program Files (x86)\\PsUpdate\\b.dat" 2.得到b.dat文件内容,然后把里面的所有'C' ...

  2. Android系统自带的android.util.Base64的实现源码

    由于Android逆向还原的时候,经常需要用到android.util.Base64的代码,因此从Android 4.4.4的 系统里抠出来进行备份,懒得用其他的代码进行修改替换了. /* * Cop ...

  3. SQL注入平台(sqli-labs)搭建提示Fatal error: Uncaught Error:

    笔者搭建该平台时用的是phpstudy,估计wampserver和xmapp也适用 搭建过程中出现错误 在浏览器进入sqli-labs时有以下提示 Fatal error: Uncaught Erro ...

  4. SpringBoot2.0之@Configuration注解

    SpringBoot2.0之@Configuration注解 本文转载自:https://www.javaman.cn/sb2/springboot-configuration 前面我们介绍了Spri ...

  5. locustfile中的User类和HttpUser类

    locustfile是什么? locustfile是Locust性能测试工具的用户脚本,描述了单个用户的行为. locustfile是个普通的Python模块,如果写作locustfile.py,那么 ...

  6. 一道VM的逆向所引发的符号执行思路

    逆向虚拟机保护 虚拟机保护类的题目需要找到虚拟机的vm_code(字节码),各个handler,然后进一步分析虚拟机保护代码的流程. 用IDA打开程序,经分析后0x403040全局变量地址处存储的就是 ...

  7. 发现数据结构与算法之美的第n次重新学习 ——— 初遇数据结构与算法(了解)

    你的数据结构怎么学的?提起数据结构,计算机与软件,it行业内无人不知,无人不晓.但是,当你真正的去通过数据结构与算法内容去实践内容时,真的能联系起来吗?那肯定的 不管是考研还是做项目,数据结构都是必学 ...

  8. Ansible_管理playbook实现配置并行

    一.使用forks在Ansible中配置并行 1.Aniable运行play机制 1️⃣:当Ansible处理playbook时,会按顺序运行每个play.确定play的主机列表之后,Ansible将 ...

  9. SUSE 11sp3镜像制作

    在安装过程遇到的问题: 起初采用官网推荐的virt-install工具,客户端没有用virt-manager或者virt-view一直无法进行操作系统安装,于是改用,直接启动虚拟机,便ok了. 1.环 ...

  10. 007.Python循环语句while循环嵌套

    1 使用两个循环打印十行小星星 j = 0 while j<10: # 打印一行十个小星星 i = 0 while i<10: print("*",end=" ...