
ORACLE DDL TRIGGER
发布日期:2021-05-08 20:10:06
浏览次数:21
分类:精选文章
本文共 1330 字,大约阅读时间需要 4 分钟。
—创建日志表
CREATE TABLE "SYS"."DDL_AUDIT_LOG" ( "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(4000 CHAR) ) ;
—创建触发器
CREATE OR REPLACE TRIGGER SYS.DDL_AUDIT AFTER CREATE OR ALTER OR DROP OR TRUNCATE OR GRANT OR REVOKE OR RENAME ON DATABASEDECLARE ipaddr VARCHAR2 (20); STEXT VARCHAR2 (2000);BEGIN BEGIN SELECT SYS_CONTEXT ('USERENV', 'IP_ADDRESS') INTO ipaddr FROM DUAL; EXCEPTION WHEN OTHERS THEN ipaddr := '-'; END; BEGIN SELECT SQL_TEXT INTO STEXT FROM v$open_cursor WHERE UPPER (sql_text) LIKE 'ALTER%' OR UPPER (sql_text) LIKE 'DROP%' OR UPPER (sql_text) LIKE 'TRUNCATE%' OR UPPER (sql_text) LIKE 'GRANT%' OR UPPER (sql_text) LIKE 'REVOKE%'; EXCEPTION WHEN OTHERS THEN STEXT := '-'; END; INSERT INTO SYS.DDL_AUDIT_LOG 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 THEN NULL;END;/
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月27日 17时38分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql修改密码
2021-05-09
virtualbox中 Kali Linux安装增强功能
2021-05-09
virtualbox中 Ubuntu挂载共享文件夹
2021-05-09
Python 内置函数笔记
2021-05-09
BootStrapTable 错误
2021-05-09
PHP 脚本不报错
2021-05-09
代码整洁之道小结
2021-05-09
悲观锁与乐观锁
2021-05-09
js new Date 创建时间默认是8点
2021-05-09
Python实现cmd命令连续执行
2021-05-09
罗马数字
2021-05-09
IO多路复用小故事
2021-05-09
纠错码简介
2021-05-09
码云 Pages 搭建
2021-05-09
《论可计算数及其在判定上的应用》简单理解
2021-05-09
中国剩余定理证明过程
2021-05-09
kafka告警简单方案
2021-05-09
java接口的应用举例
2021-05-09
java接口中多继承的问题
2021-05-09
java中Object.equals()简单用法
2021-05-09