Oracle11g安全审计--重要帐号的DDL语句操作记录

简介:

Oracle11g安全审计--重要帐号的DDL语句操作记录

 

Oracle11g安全审计--重要帐号的DDL语句操作记录

如果要审计数据库中的DDL操作,那么可以通过DDL触发器来实现,把数据库中的所有DDL操作都记录下来。本例子适用于oracle 9i或更高的版本。操作方法如下:

 

第一步,创建表空间和相关的日志表:

 

 
  1. create tablespace STAT_LOG
  2. LOGGING  
  3. datafile   
  4. '/apps/oracle/oradata/statlog.dbf' size 2048m AUTOEXTEND ON NEXT 128M  MAXSIZE 8G  
  5. EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;  
  6.  
  7. create table stat$log_ddl  
  8. (  
  9. ddl_date date,  
  10. user_name varchar2(30),  
  11. ip_addr VARCHAR2(30),  
  12. obj_name VARCHAR2(50),  
  13. ddl_type VARCHAR2(30),  
  14. object_type VARCHAR2(18),  
  15. owner VARCHAR2(30),  
  16. SQL_TEXT VARCHAR2(1000)  
  17. ) TABLESPACE STAT_LOG;  

第二步,创建数据库级的DDL触发器,把所有的DDL操作都记录下来


 

 
  1. CREATE OR REPLACE TRIGGER DDL_audit AFTER CREATE OR ALTER OR DROP OR TRUNCATE OR 
  2. GRANT OR REVOKE OR RENAME   
  3. on DATABASE   
  4. declare 
  5. ipaddr varchar2(20);  
  6. STEXT VARCHAR2(1000);  
  7. BEGIN 
  8. begin 
  9. select sys_context('USERENV''IP_ADDRESS'into ipaddr FROM dual;   
  10. exception when others then 
  11. ipaddr:='-';   
  12. end;  
  13. begin 
  14. select SQL_TEXT INTO STEXT FROM v$open_cursor WHERE UPPER(sql_text) LIKE 'ALTER%'  OR  UPPER(sql_text)  LIKE 'RENAME%' OR  UPPER(sql_text)  LIKE 'DROP%' OR UPPER(sql_text)  LIKE 'TRUNCATE%' ;   
  15. exception when others then 
  16. STEXT:='-';   
  17. end;  
  18. insert into sys.stat$log_DDL values   
  19. (sysdate,  
  20. user,  
  21. nvl (ipaddr,'-'),  
  22. NVL(ora_dict_obj_name,'-'),  
  23. NVL(ORA_SYSEVENT,'-'),  
  24. NVL(ora_dict_obj_type,'-'),  
  25. NVL(ora_dict_obj_owner,'-'),  
  26. STEXT  
  27. );  
  28. exception when others then 
  29. null;  
  30. END;  

 

 

DDL操作记录审计效果如下:

 

 
  1. select ddl_date,user_name,ip_addr,obj_name,ddl_type,sql_text from stat$log_ddl;  
  2. SQL> /  
  3.  
  4. DDL_DATE            USER_NAME  IP_ADDR              OBJ_NAME   DDL_TYPE   SQL_TEXT  
  5. ------------------- ---------- -------------------- ---------- ---------- --------------------------------------------------  
  6. 2012-10-25 23:31:40 DBA_USER   -                    T1         CREATE     -  
  7. 2012-10-25 23:32:32 DBA_USER   -                    N_TEST     DROP       -  
  8. 2012-10-25 23:36:04 DBA_USER   172.18.130.114       T1         DROP       -  
  9. 2012-10-25 23:42:49 DBA_USER   172.18.130.114       TEST       ALTER      alter table test drop(name)  
  10. 2012-10-25 23:43:08 DBA_USER   172.18.130.114       TEST       ALTER      alter table test add(name varchar2(20))  
  11. 2012-10-25 23:44:10 DBA_USER   172.18.130.114       TEST       ALTER      alter table test rename to test01  
  12. 2012-10-25 23:44:44 DBA_USER   172.18.130.114       TEST01     RENAME     -  
  13. 2012-10-25 23:51:31 DBA_USER   172.18.130.114       TEST       ALTER      alter table test add(addr varchar2(10))  
  14. 2012-10-25 23:52:12 DBA_USER   172.18.130.114       TEST       ALTER      alter table test rename column addr to ipaddr  
  15. 2012-10-26 00:22:10 DBA_USER   172.18.130.114       BYTE_TEST  TRUNCATE   -  
  16.  
  17. 10 rows selected. 

 

     本文转自vcdog 51CTO博客,原文链接:http://blog.51cto.com/255361/1037143,如需转载请自行联系原作者



相关文章
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据库
Oracle限制某个数据库帐号只能在特定机器上连入数据库
通过Oracle数据库的触发器实现,例如:TEST为测试账号、绑定的IP为:10.142.244.
807 0
|
3天前
|
SQL Oracle 安全
Oracle11g更改数据库名(详细教程)
Oracle11g更改数据库名(详细教程)
13 1
|
3天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
33 0
|
1天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之可以通过配置Oracle数据库的schema注册表来监测表结构的变化吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
10 1
|
3天前
|
Oracle 关系型数据库 数据库
Oracle数据库协议适配器错误解决方法
Oracle数据库协议适配器错误解决方法
9 2
|
3天前
|
存储 Oracle 关系型数据库
实验三 Oracle数据库的创建和管理
实验三 Oracle数据库的创建和管理
13 1
|
3天前
|
SQL Oracle 关系型数据库
实验一 安装和使用Oracle数据库
实验一 安装和使用Oracle数据库
13 1
|
3天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
16 6

推荐镜像

更多