Ok despues de varia vueltas que dio el mundo me toco la situacion y aqui esta:
Código:
/*********************************************************************/
/* Purpose: Evitar que un usuario inicie sesion mas de X veces */
/*********************************************************************/
/* Author: Octavio Suárez */
/* */
/* Description: El trigger evita mas de un logeo por parte de un */
/* usuario distinto de SYS, ver vista V$session para colocar N */
/* cantidad de variantes como el si es un proceso background, */
/* esquema etc. */
/* */
/*********************************************************************/
CREATE OR REPLACE TRIGGER logon_trigger
AFTER LOGON ON DATABASE
DECLARE
cont NUMBER;
BEGIN
SELECT COUNT(DISTINCT(s.PROCESS))
INTO cont
FROM V$session s
WHERE username=USER
AND username<>'SYS';
IF (cont > 1) THEN
RAISE_APPLICATION_ERROR(-20021,'El usuario no puede tener dos sesiones concurrentes');
END IF;
END;
Con este trigger evitamos que un usuario distinto de SYS se pueda loguer mas de una vez.
Saludos.