Welcome 微信登录

首页 / 数据库 / MySQL / Oracle使用系统级触发器审计重要帐号的DDL语句

如果要审计数据库中的DDL操作,那么可以通过DDL触发器来实现,本节介绍一个例子,把数据库中的所有DDL操作都记录下来。本例子可以在Oracle 8i或更高的版本中使用。第一步,创建表空间和相关的日志表:create tablespace statlog datafile "/oradata/statlog.dbf" size 200m;
create table stat$log_ddl(ddl_date date,user_name varchar2(30),ip_addr VARCHAR2(30),obj_name VARCHAR2(50),ddl_type VARCHAR2(30),object_type VARCHAR2(18),owner VARCHAR2(30),SQL_TEXT VARCHAR2(1000)) TABLESPACE STATLOG;第二步,创建数据库级的DDL触发器,把所有的DDL操作都记录下来
CREATE OR REPLACE TRIGGER DDL_audit AFTER CREATE OR ALTER OR DROP OR TRUNCATE ORGRANT OR REVOKE OR RENAMEon DATABASEdeclareipaddr varchar2(20);STEXT VARCHAR2(1000);BEGINbeginselect sys_context("USERENV", "IP_ADDRESS") into ipaddr FROM dual;exception when others thenipaddr:="-";end;beginselect SQL_TEXT INTO STEXT FROM v$open_cursor WHERE UPPER(sql_text) LIKE "ALTER%";exception when others thenSTEXT:="-";end;insert into sys.stat$log_DDL values(sysdate,user,nvl (ipaddr,"-"),NVL(ora_dict_obj_name,"-"),NVL(ORA_SYSEVENT,"-"),NVL(ora_dict_obj_type,"-"),NVL(ora_dict_obj_owner,"-"),STEXT);exception when others thennull;end;/ORA-02030解决办法Oracle使用系统级触发器禁用DDL语句相关资讯      Oracle教程  Oracle ddl语句  Oracle ddl触发器  Oracle语句触发器 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数