用触发器监控数据库的DDL操作

-- Create table
create table DDL_LOG
(
USER_NAME VARCHAR2(30),
DDL_DATE DATE,
DDL_TYPE VARCHAR2(30),
OBJECT_TYPE VARCHAR2(18),
OWNER VARCHAR2(30),
OBJECT_NAME VARCHAR2(128),
IP_ADDRESS VARCHAR2(40),
OSUSER VARCHAR2(30),
TERMINAL VARCHAR2(30)
);


--Create trigger
CREATE OR REPLACE TRIGGER ddl_trigger
AFTER DDL
ON DATABASE

BEGIN
INSERT INTO ddl_log
(user_name,
ddl_date,
ddl_type,
object_type,
owner,
object_name,
ip_address,
osuser,
terminal)
VALUES
(ora_login_user,
SYSDATE,
ora_sysevent,
ora_dict_obj_type,
ora_dict_obj_owner,
ora_dict_obj_name,
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
SYS_CONTEXT('USERENV', 'OS_USER'),
SYS_CONTEXT('USERENV', 'TERMINAL'));
END ddl_trigger;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13890753/viewspace-615445/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13890753/viewspace-615445/

你可能感兴趣的:(数据库)