Um outro detalhe: eu reparei no seu script que vc ainda está conectado como
SYS quando tenta fazer connect abc123/abc123. Pode ser esse o motivo de
estar gravando SYS na tabela de log. Experimenta abrir outro putty e fazer
sqlplus abc123/abc123 pra ver o q grava.

Em 29 de novembro de 2011 16:12, Marcos de Moura Gonçalves <
[email protected]> escreveu:

> Realmente, não percebi que no seu script vc se conecta como /. Eu vi o
> create trigger sem especificar o owner e achei que ficava em um outro owner.
>
>  Não sei se ajuda, mas segue o código do trigger e tabela q eu fiz na
> época:
>
> CREATE TABLE marcos.erro_logon
> (dt_erro DATE DEFAULT SYSDATE
> ,txt_oracle_user VARCHAR2(30)
> ,txt_ip VARCHAR2(15)
> ,txt_maquina VARCHAR2(50)
> ,txt_os_user VARCHAR2(50)
> ,txt_software VARCHAR2(50)
> ,txt_tipo_autenticacao VARCHAR2(50)
> ,txt_erro VARCHAR2(100))
> /
> CREATE OR REPLACE TRIGGER SYS.trg_as_erro_logon
>    AFTER SERVERERROR ON DATABASE
> BEGIN
>    IF (   is_servererror (1004)
>        OR is_servererror (1005)
>        OR is_servererror (1017)
>        OR is_servererror (1035)
>        OR is_servererror (1045)
>       )
>    THEN
>       INSERT INTO marcos.erro_logon
>                   (txt_oracle_user,
>                    txt_ip,
>                    txt_maquina,
>                    txt_os_user,
>                    txt_software,
>                    txt_tipo_autenticacao,
>                    txt_erro
>                   )
>            VALUES (SYS_CONTEXT ('USERENV', 'CURRENT_USER'),
>                    SYS_CONTEXT ('USERENV', 'IP_ADDRESS'),
>                    SYS_CONTEXT ('USERENV', 'HOST'),
>                    SYS_CONTEXT ('USERENV', 'OS_USER'),
>                    SYS_CONTEXT ('USERENV', 'MODULE'),
>                    SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE'),
>                    DBMS_UTILITY.format_error_stack
>                   );
>       COMMIT;
>    END IF;
> END trg_as_erro_logon;
> /
>
> Erros logados:
> 1004: ORA-01004: default username feature not supported; logon denied
> 1005: ORA-01005: null password given; logon denied
> 1017: ORA-01017: invalid username/password; logon denied
> 1035: ORA-01035: ORACLE only available to users with RESTRICTED SESSION
> privilege
> 1045: ORA-01045: user ... lacks CREATE SESSION privilege; logon denied
> []s
>
> Marcos
>
> Em 29 de novembro de 2011 16:08, JLSilva <[email protected]>escreveu:
>
> **
>>
>>
>> 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
>> >
>> >
>>
>>  
>>
>
>


[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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a