最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle记录用户DDL操作脚本

来源:动视网 责编:小采 时间:2020-11-09 10:34:43
文档

Oracle记录用户DDL操作脚本

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


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

Oracle利用dbms_metadata.get_DDL查看DDL语句

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

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

文档

Oracle记录用户DDL操作脚本

Oracle记录用户DDL操作脚本:Oracle记录用户DDL操作脚本 --当前普通用户创建 issgzt create table TAB_DDL ( LOGIN_USER VARCHAR2(60), AUDS Oracle记录用户DDL操作脚本 --当前普通用户创建 issgzt create table TAB_DDL ( LOGIN_USER VA
推荐度:
标签: 记录 操作 用户
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top