Oracle记录用户DDL操作脚本

php中文网
发布: 2016-06-07 17:33:32
原创
1959人浏览过

Oracle记录用户DDL操作脚本 --当前普通用户创建 issgzt create table TAB_DDL ( LOGIN_USER VARCHAR2(60), AUDS

oracle记录用户ddl操作脚本

--当前普通用户创建 issgzt 
create table TAB_DDL 

  LOGIN_USER        VARCHAR2(60), 
  AUDSID            NUMBER, 
  MACHINE            VARCHAR2(60), 
  IPADDRESS          VARCHAR2(20), 
  SCHEMA_USER        VARCHAR2(60), 
  SCHEMA_OBJECT      VARCHAR2(60), 
  DDL_TIME          DATE, 
  DDL_SQL            VARCHAR2(4000), 
  MODULE            VARCHAR2(100), 
  SCHEMA_OBJECT_TYPE VARCHAR2(60) 


 
 
--sys用户创建,监视用户对Oracle进行DDL操作 
CREATE OR REPLACE TRIGGER SYS.tr_issgzt_ddl 
  AFTER ddl ON database 
DECLARE 
  sql_text  ora_name_list_t; 
  state_sql issgzt.TAB_DDL.ddl_sql%TYPE; 
  v_program issgzt.TAB_DDL.module%TYPE; 
  error1 exception; 
 
BEGIN 
 
  IF SUBSTR(SYS_CONTEXT('USERENV', 'SESSION_USER'), 1, 1) = 'T' AND 
    SYS_CONTEXT('USERENV', 'SESSION_USER') NOT IN ('username') AND 
    lower(state_sql) not like 'alter user t%' THEN 
    raise error1; 
   
  end if; 
 
  FOR i IN 1 .. nvl(ora_sql_txt(sql_text), 2) LOOP 
    begin 
      state_sql := state_sql || sql_text(i); 
    Exception 
      when others then 
        null; 
    end; 
  END LOOP; 
  select nvl(s.program, s.MODULE) 
    into v_program 
    from v$session s 
  where s.SID = (select distinct sid from v$mystat); 
 
  INSERT INTO issgzt.TAB_DDL 
    (login_user, 
    audsid, 
    machine, 
    ipaddress, 
    schema_user, 
    schema_object, 
    SCHEMA_OBJECT_TYPE, 
    ddl_time, 
    ddl_sql, 
    module) 
  VALUES 
    (ora_login_user, 
    userenv('SESSIONID'), 
    SYS_CONTEXT('USERENV', 'TERMINAL'), 
    sys_context('userenv', 'ip_address'), 
    ora_dict_obj_owner, 
    ora_dict_obj_name, 
    ora_dict_obj_type, 
    SYSDATE, 
    substr(state_sql, 1, 3000), 
    v_program); 
EXCEPTION 
  WHEN error1 THEN 
   
    raise_application_error(num => -20000, 
                            msg => ' ERROR'); 
END tr_trace_ddl; 

相关阅读:

两台Oracle之间配置OGG-未配置同步DDL

Oracle GoldenGate 11g单向DDL配置实战

企业管理系统2.0
企业管理系统2.0

本系统有两种操作用户,一种为普通用户,一种为管理员。普通用户可以查看公告、查看规章制度、更改个人密码、查看部门信息、查看员工信息、发表留言、进行工作总结等等;管理员可以对规章制度管理、系统权限设置、操作记录查看、部门管理、员工管理、任务分配、留言管理、工资管理、合同管理等登录帐号admin 密码 admin

企业管理系统2.0 0
查看详情 企业管理系统2.0

Oracle利用dbms_metadata.get_DDL查看DDL语句

Oracle使用系统级触发器禁用DDL语句

Oracle使用系统级触发器审计重要帐号的DDL语句

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号