В настоящее время у нас есть логин trigger
, который перехватывает пользовательскую информацию для сеанса, который входит в Oracle из определенных приложений (например, SQL Plus, SQL Developer). Он берет эту информацию и вставляет ее в таблицу для целей аудита.
Теперь, если пользователь входит в систему через одно из этих приложений, для которых мы ведем ловушку, мы хотим предложить пользователю ввести информацию о том, почему он входит, а затем записать ее в эту же таблицу для целей аудита. 1004 *
Любые идеи о том, как мы можем сделать это с тем, что у нас есть, или любые другие идеи о том, как сделать то же самое?
Текущий Login Trigger
:
begin
if (dba_monitor.get_program_name = 1)
then
insert into dba_monitor.logon_table2
(username,machine,program, logon_date)
select username,machine,program,sysdate
from v$session
where username=(select user from dual)
and username not in ('SYSMAN','DBSNMP');
else
insert into dba_monitor.logon_table
(user_name,logon_date)
select username,sysdate
from v$session
where username=(select user from dual)
and username not in ('SYSMAN','DBSNMP');
end if;
end;
DBA_MONITOR.GET_PROGRAM
Функция:
return varchar2
is
audit_program number :=0;
audit_select number :=0;
begin
select 1
into audit_program
from v$session
where audsid = sys_context('USERENV','sessionid')
and (upper(program) in ('SQLPLUS.EXE', 'SQLPLUSW.EXE', 'TOAD.EXE', 'GOLDEN32.EXE', 'MSACCESS.EXE'));
return(audit_program);
exception
WHEN NO_DATA_FOUND
then
return(audit_select);
end;