PDA

Ver la Versión Completa : Capturar user y PC en Oracle


Sostratov
11-10-2004, 22:16:40
Hola amigos,

quiero capturar el OSuser y la PC .. se que en v$ssesion tengo esa informacion, pero no me es practico para lo que quiero hacer.
Quiero llenar registros de auditoria (log) en una tabla creada por mi.. y en cualquier momento saber quien inserta o modifica registros.

Como siempre le estare agradecido por su ayuda,

gracias

aglopez
21-10-2004, 17:32:48
Este es un disparador de BD que tengo creado para auditar
unos cambios en la tabla ARTICULOS

A ver si es esto lo que estabas buscando.


CREATE OR REPLACE TRIGGER "GESTION".CAMBIO_ARTICULOS
BEFORE UPDATE
ON ARTICULOS FOR EACH ROW
WHEN ( (OLD.ACTIVO<>NEW.ACTIVO) OR
(OLD.INTERNET<>NEW.INTERNET) OR
(OLD.TIPO_EVAL<>NEW.TIPO_EVAL) )
DECLARE
FEC DATE;
N INTEGER;
MODU VARCHAR2(50);
MAC VARCHAR2(40);
BEGIN
SELECT SUBSTR(MACHINE,1,40) INTO MAC
FROM V$SESSION
WHERE AUDSID=USERENV('SESSIONID');
BEGIN
SELECT MODULO_ACTUAL INTO MODU FROM USUARIOS WHERE LOGIN=MAC;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MODU:='DESCONOCIDO';
END;
INSERT INTO CAMBIO_ARTICULOS
SELECT SYSDATE,MAC,MODU,:OLD.ID_ARTICULO,:OLD.ACTIVO,:NEW.ACTIVO,:OLD.INTERNET,
:NEW.INTERNET,:OLD.TIPO_EVAL,:NEW.TIPO_EVAL FROM DUAL;
END;