-- Create table
create table USER_LOGIN_AUDIT
(
LOGIN_TIME DATE,
USERNAME VARCHAR2(30),
MACHINE VARCHAR2(30),
COMMAND VARCHAR2(128),
PROGRAM VARCHAR2(200),
ACTION VARCHAR2(200)
)
tablespace USR
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
CREATE OR REPLACE TRIGGER user_login_trig
AFTER LOGON ON maxicon.SCHEMA
DECLARE
v_username sys.v_$session.username%TYPE;
v_machine sys.v_$session.machine%TYPE;
v_command sys.v_$session.command%TYPE;
v_program sys.v_$session.PROGRAM%type;
v_action sys.v_$session.action%type;
BEGIN
SELECT username, machine, command,program,action
INTO v_username, v_machine, v_command,v_program,v_action
FROM gv$session
WHERE audsid = USERENV('SESSIONID')
AND audsid != 0 -- Don't Check SYS Connections
AND ROWNUM = 1; -- Parallel processes will have the same AUDSID's
INSERT INTO user_login_audit
VALUES (SYSDATE, v_username, v_machine, v_command,v_program,v_action);
IF UPPER(v_machine) LIKE '%PC1%' THEN -- Start SQL trace for users from PC1
DBMS_SESSION.set_sql_trace(TRUE);
END IF;
END;
Nenhum comentário:
Postar um comentário