- Este tópico contém 6 respostas, 2 vozes e foi atualizado pela última vez 14 anos, 5 meses atrás por
leo_jf.
-
AutorPosts
-
20 de setembro de 2011 às 5:17 pm #100863
leo_jf
ParticipanteBom dia Senhores, blz?
Tenho uma aplicação em VB6. Há uma trigger de auditoria que gostaria de incluir o usuario e ip toda vez que o usuario logasse no sistema. Ha como eu buscar o usuario da sessao e ip?
Tentei usar a package (owa_util.get_cgi_env(‘REMOTE_ADDR’), mas não funcionou.
obrigado.20 de setembro de 2011 às 5:40 pm #100868rman
ParticipanteVerifica se isso ajuda:
SELECT 'HOSTNAME: '||SYS_CONTEXT('USERENV', 'TERMINAL')
||' IP: '||SYS_CONTEXT('USERENV', 'IP_ADDRESS')
||' USUARIO_SO: '||SYS_CONTEXT('USERENV', 'OS_USER')
FROM DUAL;
20 de setembro de 2011 às 6:13 pm #100872leo_jf
ParticipanteFala rman,
Funcionou perfeito. muitíssimo obrigado.
Só uma duvida:
Eu peguei o usuário da sessão oracle. Tem como pegar da sessão do VB?
Se não tiver não teria problemas, pois teoricamente o usuário logado na máquina que irá usar o sistema.
abraços
20 de setembro de 2011 às 8:53 pm #100885rman
Participante@leo_jf
Você precisa de saber qual é o usuário do sistema, e o sistema usa apenas 1 conexão com o banco correto ? Ou seja, pro Oracle existe apenas 1 usuário. É isso ?
20 de setembro de 2011 às 8:59 pm #100886leo_jf
ParticipanteOi rman,
Seria isso mesmo.
Exemplo: Quando acessei o sistema loguei com meu usuário 228000, mas foi logado na tabela de auditoria minha matricula 2180000. O motivo é que o sistema não tenho acesso, então uso matricula de outra pessoa. Gostaria que a tabela mostrasse o login que acessou o sistema 22800020 de setembro de 2011 às 11:30 pm #100895rman
ParticipanteÉ possível identificar o usuário do sistema, mas é necessário criar uma package ou tabela temporária para armazenar o nome do usuário do sistema.
Vou explicar a lógica:
Utilizando package. Crie uma package e adicione um atributo usuário, implemente uma procedure no package body chamada setUsuario, essa procedure será utilizada toda vez que o usuário logar no sistema. Implemente um getUsuario que simplesmente lê o atributo usuário da package.
Utilizando tabela temporária: Crie uma tabela temporária com uma coluna usuário, ao entrar no sistema faça um insert na tabela, quando quiser saber quem é faça um select na tabela, configure a tabela temporária para limpar ao desconectar a sessão. O insert e select podem ser encapsulado em procedure e function.
Pretendo escrever um artigo no meu blog sobre isso futuramente.
23 de setembro de 2011 às 9:42 pm #100955leo_jf
ParticipanteBoa Tarde Rman,
Já tinha pensando em uma solução parecida com a que você me indicou, mas a analista não quis mudar o código fonte do sistema.
De qq forma ficou a opção do usuário SO que funcionou perfeitamente.obrigado por ter me ajudado.
Forte abraço.
-
AutorPosts
- Você deve fazer login para responder a este tópico.