Olá Pessoal,
Sou iniciante em Oracle e gostaria de tirar uma dúvida ou até mesmo receber uma sugestão. Estou com o seguinte cenário:
Estou implementando auditoria de dados nos bancos das aplicações que desenvolvo em .NET, porém gostaria de no momento em que minha trigger de auditoria for registrar a inclusão/alteração/deleção recuperar qual o usuário da aplicação(e não do banco) executou a tal operação, gostaria de fazer isso de uma forma menos acoplada possível.
Nas aplicações em que utilizo o SqlServer, implementei da seguinte forma:
Existe um atributo na ConnectionString chamado Workstation ID que eu posso informar um valor qualquer, e no banco, atravéz de uma trigger ou procedure consigo recuperar o valor que foi informado no momento da conexão com o banco.
Com esta implementação não preciso em nenhum momento implementar campos nas tabelas com o codigo do usuário, ou mesmo mecher nos métodos da minha aplicação. Pois toda a conexão terá o codigo do usuário.
Gostaria de saber se existe um atributos similar no Oracle, ou até mesmo alguma sugestão de como implementar essa auditoria.
Desde já agradeço a quem puder me ajudar.
WorkStation ID ou similar em Oracle
-
- Rank: DBA Pleno
- Mensagens: 264
- Registrado em: Dom, 19 Ago 2007 8:18 pm
- Localização: Ribeirão Preto - SP
Lucas de Souza
OCA Developer
Analista de sistemas
OCA Developer
Analista de sistemas
ixi filho, no oracle tem como sim...
olha esse select
espero ter ajudado
olha esse select
select trim(username), -- Usuário conectado no banco
nvl(trim(program),'PROGRAMA NÃO INDENTIFICADO'), -- Nome do programa que abriu a sessao não banco
trim(machine), -- Nome do computador na rede
trim(osuser), -- Nome do usuário da rede
trim(terminal) --Nome do computador
from v$session
where audsid = userenv('sessionid')
-
- Rank: DBA Pleno
- Mensagens: 264
- Registrado em: Dom, 19 Ago 2007 8:18 pm
- Localização: Ribeirão Preto - SP
Lucas de Souza
OCA Developer
Analista de sistemas
OCA Developer
Analista de sistemas
ueh... você está conectando em um banco oracle ??
porque até onde eu sei todos os usuários tem privilégio de ver a v$session
agora não sei porque de estar acontecendo isso, se alguém puder ajudar....
porque até onde eu sei todos os usuários tem privilégio de ver a v$session
agora não sei porque de estar acontecendo isso, se alguém puder ajudar....
-
- Rank: Estagiário Pleno
- Mensagens: 4
- Registrado em: Ter, 01 Abr 2008 2:08 pm
- Localização: Rio de Janeiro - RJ
Att.
Marcus Dorbação
Marcus Dorbação
Pessoal, consegui... atribuí alguns privilégios ao meu usuário e foi...
só uma dúvida, existe algum atributo que eu possa informar na ConnectionString de minha aplicação e recuperar via query?
Tipo um valor que eu possa informar qualquer coisa, no SQL Server eu uso o atributo Workstation ID = id_usuario_aplicacao... gostaria de fazer algo parecido no Oracle.
No aguarda e até mais...
só uma dúvida, existe algum atributo que eu possa informar na ConnectionString de minha aplicação e recuperar via query?
Tipo um valor que eu possa informar qualquer coisa, no SQL Server eu uso o atributo Workstation ID = id_usuario_aplicacao... gostaria de fazer algo parecido no Oracle.
No aguarda e até mais...
-
- Rank: DBA Pleno
- Mensagens: 264
- Registrado em: Dom, 19 Ago 2007 8:18 pm
- Localização: Ribeirão Preto - SP
Lucas de Souza
OCA Developer
Analista de sistemas
OCA Developer
Analista de sistemas
hmm.. bem, não intendi muito bem o que você qui dizer...
pelo qui eu intendi, você quer alguma coisa como variaveis globais não é ??
isso existe no forms, mais eu não intendo muito bem sobre isso....
mais no sqlPlus você pode recuperar o codigo de conexao do usuário conectado assim:
=D
pelo qui eu intendi, você quer alguma coisa como variaveis globais não é ??
isso existe no forms, mais eu não intendo muito bem sobre isso....
mais no sqlPlus você pode recuperar o codigo de conexao do usuário conectado assim:
select user from dual;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes