Olha, não entendo qual seria a diferença. A trigger e a tabela já está no 
schema SYS.
De qualquer forma, executei este procedimento, mas o resultado foi exatamente o 
mesmo, ou seja, o CURRENT_USER retorna o SYS e o SESSION_USER retorna nulo, 
independente de existir ou não no banco o usuário informado no login.

Se tiver mais alguma dica, agradeço!

connect / as sysdba

create user jlsilva identified by jlsilva quota unlimited on users;
grant create session, create table to jlsilva;

drop table jlsilva.log_falha_logon_tt purge;
create table jlsilva.log_falha_logon_tt as
select
  --ORA_LOGIN_USER                               SESSION_USER,
  sys_context('USERENV','CURRENT_USER')        SESSION_USER,
  --sys_context('USERENV','SESSION_USER')        SESSION_USER,
  --sys_context('USERENV','SESSION_USERID')      SESSION_USERID,
  sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
  ORA_DATABASE_NAME                            DATABASE_NAME,
  ORA_INSTANCE_NUM                             INSTANCE_NUM,
  ORA_SERVER_ERROR(1)                          SERVER_ERROR,
  sysdate                                      HORA_OCORR,
  sys_context('USERENV','IP_ADDRESS')          IP_ADDRESS,
  sys_context('USERENV','HOST')                HOST,
  sys_context('USERENV','TERMINAL')            TERMINAL,
  sys_context('USERENV','OS_USER')             OS_USER,
  sys_context('USERENV','NETWORK_PROTOCOL')    NETWORK_PROTOCOL
from dual
where 1=2;

create or replace trigger sys.tr_falha_logon_tt
AFTER SERVERERROR ON DATABASE
declare
BEGIN
IF IS_SERVERERROR(1017) THEN
  insert into jlsilva.log_falha_logon_tt
  (
    SESSION_USER,
    AUTHENTICATION_TYPE,
    DATABASE_NAME,
    INSTANCE_NUM,
    SERVER_ERROR,
    HORA_OCORR,
    IP_ADDRESS,
    HOST,
    TERMINAL,
    OS_USER,
    NETWORK_PROTOCOL
  )
  values
  (
    --ORA_LOGIN_USER,
    sys_context('USERENV','CURRENT_USER'),
    --sys_context('USERENV','SESSION_USER'),
    --sys_context('USERENV','SESSION_USERID'),
    sys_context('USERENV','AUTHENTICATION_TYPE'),
    ORA_DATABASE_NAME,
    ORA_INSTANCE_NUM,
    ORA_SERVER_ERROR(1),
    sysdate,
    sys_context('USERENV','IP_ADDRESS'),
    sys_context('USERENV','HOST'),
    sys_context('USERENV','TERMINAL'),
    sys_context('USERENV','OS_USER'),
    sys_context('USERENV','NETWORK_PROTOCOL')
  );
END IF;
END;
/

connect abc123/abc123
connect / as sysdba

set linesize 999 pagesize 1000
column SESSION_USER        format a15
column SESSION_USERID      format a15
column AUTHENTICATION_TYPE format a15
column DATABASE_NAME       format a15
column INSTANCE_NUM        format 999
column SERVER_ERROR        format 999999
column IP_ADDRESS          format a15
column HOST                format a35
column TERMINAL            format a15
column OS_USER             format a15
column NETWORK_PROTOCOL    format a15
select * from jlsilva.log_falha_logon_tt order by hora_ocorr;

On Nov 29, 2011, at 15:55 , Marcos de Moura Gonçalves wrote:

> Cara, a minha trigger é muito parecida com a sua, o mesmo conceito. Fiz
> essa trigger a um tempo já, e lembro que li alguma coisa sobre a diferença
> entre essa trigger estar ou não no usuário SYS. O motivo, honestamente, não
> lembro, mas lembro que minha tabela de log ficava dentro do meu schema, mas
> a trigger eu criei dentro do schema sys. Experimenta dropar a sua trigger e
> recompilá-la, igualzinha, apenas especificando:
> create or replace trigger SYS.tr_falha_logon_tt
> 
> Em 29 de novembro de 2011 15:49, JLSilva <[email protected]> escreveu:
> 
>> **
>> 
>> 
>> Ah, entendi.
>> Você deve estar fazendo uma trigger de login, comum.
>> Veja meu processo e veja se é isto que você está fazendo:
>> 
>> connect / as sysdba
>> 
>> drop table log_falha_logon_tt purge;
>> create table log_falha_logon_tt as
>> select
>> --ORA_LOGIN_USER SESSION_USER,
>> sys_context('USERENV','CURRENT_USER') SESSION_USER,
>> --sys_context('USERENV','SESSION_USER') SESSION_USER,
>> --sys_context('USERENV','SESSION_USERID') SESSION_USERID,
>> sys_context('USERENV','AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,
>> ORA_DATABASE_NAME DATABASE_NAME,
>> ORA_INSTANCE_NUM INSTANCE_NUM,
>> ORA_SERVER_ERROR(1) SERVER_ERROR,
>> sysdate HORA_OCORR,
>> sys_context('USERENV','IP_ADDRESS') IP_ADDRESS,
>> sys_context('USERENV','HOST') HOST,
>> sys_context('USERENV','TERMINAL') TERMINAL,
>> sys_context('USERENV','OS_USER') OS_USER,
>> sys_context('USERENV','NETWORK_PROTOCOL') NETWORK_PROTOCOL
>> from dual
>> where 1=2;
>> 
>> create or replace trigger tr_falha_logon_tt
>> AFTER SERVERERROR ON DATABASE
>> declare
>> BEGIN
>> IF IS_SERVERERROR(1017) THEN
>> insert into log_falha_logon_tt
>> (
>> SESSION_USER,
>> AUTHENTICATION_TYPE,
>> DATABASE_NAME,
>> INSTANCE_NUM,
>> SERVER_ERROR,
>> HORA_OCORR,
>> IP_ADDRESS,
>> HOST,
>> TERMINAL,
>> OS_USER,
>> NETWORK_PROTOCOL
>> )
>> values
>> (
>> --ORA_LOGIN_USER,
>> sys_context('USERENV','CURRENT_USER'),
>> --sys_context('USERENV','SESSION_USER'),
>> --sys_context('USERENV','SESSION_USERID'),
>> sys_context('USERENV','AUTHENTICATION_TYPE'),
>> ORA_DATABASE_NAME,
>> ORA_INSTANCE_NUM,
>> ORA_SERVER_ERROR(1),
>> sysdate,
>> sys_context('USERENV','IP_ADDRESS'),
>> sys_context('USERENV','HOST'),
>> sys_context('USERENV','TERMINAL'),
>> sys_context('USERENV','OS_USER'),
>> sys_context('USERENV','NETWORK_PROTOCOL')
>> );
>> END IF;
>> END;
>> /
>> 
>> connect abc123/abc123
>> connect / as sysdba
>> 
>> set linesize 999 pagesize 1000
>> column SESSION_USER format a15
>> column SESSION_USERID format a15
>> column AUTHENTICATION_TYPE format a15
>> column DATABASE_NAME format a15
>> column INSTANCE_NUM format 999
>> column SERVER_ERROR format 999999
>> column IP_ADDRESS format a15
>> column HOST format a35
>> column TERMINAL format a15
>> column OS_USER format a15
>> column NETWORK_PROTOCOL format a15
>> select * from log_falha_logon_tt order by hora_ocorr;
>> 
>> 
>> On Nov 29, 2011, at 15:43 , Marcos de Moura Gonçalves wrote:
>> 
>>> Engraçado cara, eu fiz exatamente isso e trouxe o usuário da conexão...
>>> Talvez seja porquê a minha trigger está no usuário SYS. Experimenta
>> criá-la
>>> para o usuário SYS.
>>> 
>>> Em 29 de novembro de 2011 15:40, JLSilva <[email protected]>
>> escreveu:
>>> 
>>>> **
>> 
>>>> 
>>>> 
>>>> Marcos, é por aí, mas o sys_context('USERENV','CURRENT_USER') retornou o
>>>> usuário proprietário da trigger.
>>>> Precisaria de uma função que retornasse o usuário informado no login.
>>>> Valeu!
>>>> 
>>>> 
>>>> On Nov 29, 2011, at 15:33 , Marcos de Moura Gonçalves wrote:
>>>> 
>>>>> Boa tarde JLSilva,
>>>>> 
>>>>> Experimenta SYS_CONTEXT ('USERENV', 'CURRENT_USER').
>>>>> 
>>>>> []s
>>>>> 
>>>>> Marcos
>>>>> 
>>>>> Em 29 de novembro de 2011 13:47, JLSilva <[email protected]>
>>>> escreveu:
>>>>> 
>>>>>> **
>>>> 
>>>>>> 
>>>>>> 
>>>>>> Pessoal, alguém teria uma trigger que consiga registrar o nome do
>>>> usuário
>>>>>> quando ocorre falha no login?
>>>>>> As funções ora_login_user e sys_context('USERENV','SESSION_USER') não
>>>>>> registram nenhum valor quando ocorre erro de login (trigger "AFTER
>>>>>> SERVERERROR ON DATABASE").
>>>>>> Consegui registrar todas as demais informações (osuser, machine,
>>>>>> ipaddress), exceto o nome do usuário.
>>>>>> Obrigado.
>>>>>> 
>>>>>> Oracle11gR2 11.2.0.2.0 Standard Edition.
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>> 
>>>>> 
>>>>> 
>>>>> ------------------------------------
>>>>> 
>>>>> ----------------------------------------------------------
>>>>>> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
>>>> inteira responsabilidade de seus remetentes.
>>>>> Acesse: http://www.mail-archive.com/[email protected]/
>>>>> ----------------------------------------------------------
>>>>>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
>>>> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
>> ESPAÇO!
>>>> VISITE: http://www.oraclebr.com.br/
>>>>> ---------------------------------------------------------- Links do
>>>> Yahoo! Grupos
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> [As partes desta mensagem que não continham texto foram removidas]
>>> 
>>> 
>>> 
>>> ------------------------------------
>>> 
>>> ----------------------------------------------------------
>>>> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
>> inteira responsabilidade de seus remetentes.
>>> Acesse: http://www.mail-archive.com/[email protected]/
>>> ----------------------------------------------------------
>>>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
>> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
>> VISITE: http://www.oraclebr.com.br/
>>> ---------------------------------------------------------- Links do
>> Yahoo! Grupos
>>> 
>>> 
>> 
>> 
>> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> ------------------------------------
> 
> --------------------------------------------------------------------------------------------------------------------------
>> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>> responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/[email protected]/ 
> --------------------------------------------------------------------------------------------------------------------------
>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>> Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>> http://www.oraclebr.com.br/  
> ------------------------------------------------------------------------------------------------------------------------
>  Links do Yahoo! Grupos
> 
> 

Responder a