1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| CREATE OR REPLACE TRIGGER SYS.trg_trace_drop
BEFORE DROP ON DATABASE
DECLARE
l_event VARCHAR2 (4000) := ora_sysevent;
l_login VARCHAR2 (30) := ora_login_user;
l_type VARCHAR2 (30) := ora_dict_obj_type;
l_owner VARCHAR2 (30) := ora_dict_obj_owner;
l_name VARCHAR2 (30) := ora_dict_obj_name;
l_osuser VARCHAR2 (30);
CURSOR c1
IS
SELECT osuser
FROM v$session
WHERE audsid = USERENV ('sessionid');
BEGIN
IF l_login <> 'SYS'
THEN
IF l_owner <> 'SYS'
THEN
OPEN c1;
FETCH c1 INTO l_osuser;
CLOSE c1;
INSERT INTO trace_drop
(user_login, user_os, date_event, evenement,
objet_owner, objet_name, objet_type
)
VALUES (l_login, l_osuser, SYSDATE, l_event,
l_owner, l_name, l_type
);
END IF;
END IF;
END; |