Bom dia pessoal!
Tenho um banco de dados Oracle 9i com vários usúarios criados.
Gostaria de saber qual tabela do Oracle consigo verificar qual foi o último login de cada usuário de um banco de dados, poie preiciso gerar um relatório com essa informação.
muito obrigado
Data de último login - usuário
-
- Rank: Programador Júnior
- Mensagens: 25
- Registrado em: Sex, 25 Mai 2007 3:21 pm
- Localização: São Paulo
-
- Rank: Programador Júnior
- Mensagens: 25
- Registrado em: Sex, 25 Mai 2007 3:21 pm
- Localização: São Paulo
Não tem auditoria habilitada, e não existem triggers que guardem essa informação.
Olhei na V$SESSION mas essa so mostra data e hora dos usuários que estão logados e eu preciso de todos os usuários, para verificar quais a muito tempo não são utilizados.
Muito obrigado
Olhei na V$SESSION mas essa so mostra data e hora dos usuários que estão logados e eu preciso de todos os usuários, para verificar quais a muito tempo não são utilizados.
Muito obrigado
-
- 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
bom.. eu num sei se tem como não...
mais para isso pode ser feito uma trigger de banco...
mais eu acho qui isso ficaria mtoooooo pesado depois de um tempo...
mais nesse site aqui tem mtos scripts que podem te ajudar:
http://www.oracle-base.com/dba/DBACategories.php
=D
mais para isso pode ser feito uma trigger de banco...
mais eu acho qui isso ficaria mtoooooo pesado depois de um tempo...
mais nesse site aqui tem mtos scripts que podem te ajudar:
http://www.oracle-base.com/dba/DBACategories.php
=D
-
- 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
axei no meu banco aqui uma coisa que pode te ajudar
TRIGGER LOG_CONEXAO
AFTER LOGON ON DATABASE
DECLARE
v_usuario v$session.username%type;
v_programa v$session.program%type;
v_maquina v$session.machine%type;
v_terminal v$session.terminal%type;
v_osuser v$session.osuser%type;
BEGIN
select trim(username),
nvl(trim(program),'PROGRAMA NÃO INDENTIFICADO'),
trim(machine),
trim(osuser),
trim(terminal)
into v_usuario,
v_programa,
v_maquina,
v_osuser,
v_terminal
from v$session
where audsid = userenv('sessionid')
and username in ('USUÁRIOS QUE SERAM PEGOS NO SELECT') -- caso sirva para todos os usuário retirar ese campo
and upper(trim(osuser)) not in ('ORACLE','SYSTEM');
insert into log_conexao(dt,
usu,
programa,
osuser,
terminal,
maquina)
values(sysdate,
v_usuario,
v_programa,
v_osuser,
v_terminal,
v_maquina);
EXCEPTION
when no_data_found then
null;
when others then
raise_application_error(-20000,'LOG_CONEXAO - erro= '||sqlerrm);
END;
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Pois é, o ORACLE não guarda "a toa" informações desse tipo.
Isso deve ser construído e guardado apenas se é necessário.
(imagina se tudo estivesse habilitado, logs, etc... Os discos iam pro espaço rapidinho).
Por isso, a idéa da trigger é uma boa!
se você não quer que a tabela cresça muito, pode fazer uma "limpeza" de vez em quando OU guardar apenas o último login de cada um. (Faz update numa tabela com o nome do usuário e data. Se o usuário que está fazendo LOGIN já existe nessa tabela, faz UPDATE da data. Se não existe, INSERE ele)
Isso deve ser construído e guardado apenas se é necessário.
(imagina se tudo estivesse habilitado, logs, etc... Os discos iam pro espaço rapidinho).
Por isso, a idéa da trigger é uma boa!
se você não quer que a tabela cresça muito, pode fazer uma "limpeza" de vez em quando OU guardar apenas o último login de cada um. (Faz update numa tabela com o nome do usuário e data. Se o usuário que está fazendo LOGIN já existe nessa tabela, faz UPDATE da data. Se não existe, INSERE ele)
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes