0
我們目前有一個登錄名爲trigger
的登錄用戶信息,用於從特定應用程序(即SQL Plus,SQL Developer)登錄Oracle的會話。它採用這些信息並將其插入表中以用於審計目的。登錄觸發器,用於接受用戶輸入
現在,如果用戶通過其中一個應用程序登錄我們正在陷入困境,我們希望提示用戶輸入可登錄的信息,然後將其寫入同一張表中以用於審計目的。
關於我們如何用我們擁有的東西或者其他關於如何完成這件事情的想法來做到這一點的想法?
當前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;