Bonjour,
j'ai ecris un trigger after logon on database qui devrait interdire des connexions d'un utilisateur autre que celle passant par des application bien précise mais seulement ça ne marche pas. ci après mon code:
CREATE OR REPLACE TRIGGER "SYS"."INTERDIRE_SQLPLUS" AFTER
LOGON ON DATABASE DECLARE
v_sid sys.v_$session.sid%type;
v_username sys.v_$session.username%type;
v_program sys.v_$session.program%type;
BEGIN
EXECUTE IMMEDIATE 'SELECT distinct sid FROM sys.v_$mystat' INTO v_sid;
EXECUTE IMMEDIATE 'SELECT program FROM sys.v_$session WHERE sid = :v_sid2' INTO v_program USING v_sid;
EXECUTE IMMEDIATE 'SELECT username FROM sys.v_$session WHERE sid = :v_sid2' INTO v_username USING v_sid;
IF (v_program !='Edition_Facture.exe' or v_program != 'Ligne1000.exe') AND v_username = 'AESL1000ESE' THEN
RAISE_APPLICATION_ERROR(-20001,'Connexion avec '||v_username||' sous '||v_program||' interdite, contacter le DBA', TRUE);
END IF;

END;
Merci de regarder et me dire pourquoi le trigger ne marche pas. y'a-t-il un paramètre oracle qu'il faut activer?