我需要做一个日志察看,来得到每个用户的操作。
目前对所有的操作都会记录到了一张表(T1)里面,同时记录了每个操作对应的sessionId(不能记录用户名称),现在,我需要查询这个表(T1),也意味着我需要把这个sessionID翻译过来。问题是,过了一段时间后,这个sessionID已经失效了,不知道如何去找到它曾经对应的用户名称。要如何解决呢?
我想在数据库产生这个sessionID的时候就把对应的用户名称保存起来,不知道怎么做?另外,需要提出的事,出于性能考虑,T1上不允许建立触发器,也就是说,不能通过在T1上建立触发器来得到用户名称。
目前对所有的操作都会记录到了一张表(T1)里面,同时记录了每个操作对应的sessionId(不能记录用户名称),现在,我需要查询这个表(T1),也意味着我需要把这个sessionID翻译过来。问题是,过了一段时间后,这个sessionID已经失效了,不知道如何去找到它曾经对应的用户名称。要如何解决呢?
我想在数据库产生这个sessionID的时候就把对应的用户名称保存起来,不知道怎么做?另外,需要提出的事,出于性能考虑,T1上不允许建立触发器,也就是说,不能通过在T1上建立触发器来得到用户名称。
create or replace trigger login_on_info
after logon on database
Begin
if USERENV('SESSIONID')>0 then
insert into TABLENAME(...)
select ...
from v$session where AUDSID = USERENV('SESSIONID'); --当前SESSION
end if;
END;