当前位置:  数据库>oracle

Oracle记录用户DDL操作脚本

    来源: 互联网  发布时间:2017-05-28

    本文导语: Oracle记录用户DDL操作脚本 --当前普通用户创建 issgzt  create table TAB_DDL  (    LOGIN_USER        VARCHAR2(60),    AUDSID            NUMBER,    MACHINE            VARCHAR2(60),    IPADDRESS          VARCHAR2(20),    SCHEMA_USER        VARCHAR2(6...

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配置实战

Oracle利用dbms_metadata.get_DDL查看DDL语句

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

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


    
 
 

您可能感兴趣的文章:

  • linux环境下oracle条件导出数据的shell脚本怎么写
  • Oracle新手教程 手工创建数据库的全部脚本及说明
  • 杀掉oracle在线用户脚本分享
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • linux下oracle的自启动脚本解析
  • 怎么写一个Shell来执行这样的功能,访问Oracle数据库,然后执行一个SQL脚本,生成一个文件。急!
  • oracle使用sql脚本生成csv文件案例学习
  • shell 执行oracle sql脚本的问题
  • Linux下Oracle归档日志自动清理脚本代码(sh)
  • 求教:shell 脚本怎么获取ORACLE存储过程的返回值?
  • Oracle 10g在Solaris 10下的自动运行脚本
  • Oracle 获得以百分号结尾的脚本有三种写法
  • Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
  • Linux oracle数据库自动备份自动压缩脚本代码
  • 高手帮忙solaris中oracle的启动脚本
  • Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果 iis7站长之家
  • Linux下安装ORACLE 10g前的系统设置脚本
  • Oracle 数据库管理脚本命名规范
  • oracle 服务启动,关闭脚本(windows系统下)
  • 请教:如何在java程序里直接执行Oracle的sql脚本,谢谢先!在线等待,有参考意见即可加分。
  • ORACLE日期相关操作
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle终于涉入支持Linux操作系统了
  • Linux平台下Oracle的操作
  • linux c 怎样利用pro*c/c++操作 win2000 下 oracle 谢谢
  • Window客户端通过ADO是否能够连接和操作Unix平台下的Oracle数据库?
  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
  • 如何设定linux red hat 9的oracle9,让window的电脑可以操作数据库
  • linux oracle数据库删除操作指南
  • Linux环境中Oracle数据导入与导出备份操作
  • Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 从jsp想oracle插入记录的顺序问题
  • 紧急求救:为什么oracle只能选择一定数据的记录
  • 记录Linux下一次oracle启动错误
  • ejb的bmp向oracle表插入图片记录的问题!
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • 给200分:oracle的jdbc有BUG??为何在servlet中记录数不能超过120条?
  • 关于JDBC访问Oracle返回数据集的记录限制的问题
  • Oracle 如何快速查找和删除重复记录
  • Oracle 当前用户下所有表的记录总数
  • Oracle中用Rowid查找和删除重复记录
  • 如何确定Oracle数据库表重复的记录
  • shell向oracle插记录 小问题送分了,谢谢
  • 利用ASP来实现Oracle数据记录的分页显示
  • Oracle数据库设置任务计划备份一周的备份记录
  • Linux(Oracle系统在上面)系统无缘无故死机 , 可能是由于应用程序引起 , 可是由于重新启动查不到相关信息 , 不知道在哪里有记录系统CPU Lo
  • MySQL数据迁移到Oracle记录
  • Oracle中取固定记录数详细步骤
  • Oracle基本操作全记录
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • 在oracle下要在同一事务下插入多条记录,该怎么做??最好要有原代码
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,