版本: Oracle 7.3.4
描述: 我所在项目组建了一个数据库,别人老是偷偷的改东西,每次都是制造一种假象,像是我改的(把别人的东西都改了,就是不改我的),制造了不少同事间的不愉快,为此我想写一个触发器,想看看,谁改了这张表,想把这个垃圾抓出来!但是好像有点难度,请大家帮帮忙。不管是记录IP也好,还是机器名成都可以。我没有办法在触发器中,确定是那个用户触发了他,请大家帮帮我!!!
注意:我的数据库是Oracle 7.3.4,所以说 SYS_CONTEXT 不支持!
描述: 我所在项目组建了一个数据库,别人老是偷偷的改东西,每次都是制造一种假象,像是我改的(把别人的东西都改了,就是不改我的),制造了不少同事间的不愉快,为此我想写一个触发器,想看看,谁改了这张表,想把这个垃圾抓出来!但是好像有点难度,请大家帮帮忙。不管是记录IP也好,还是机器名成都可以。我没有办法在触发器中,确定是那个用户触发了他,请大家帮帮我!!!
注意:我的数据库是Oracle 7.3.4,所以说 SYS_CONTEXT 不支持!
http://www.itpub.net/296606.html
2、如何查出连接数据库的客户端ip地址?
http://www.itpub.net/209559.html
for example:
16:00:54 SQL> create table a(a int,b int);表已创建。已用时间: 00: 00: 00.40
16:00:54 SQL> create table tp_log(machine varchar2(64),ip varchar2(30));表已创建。已用时间: 00: 00: 00.47
16:00:54 SQL>
16:00:54 SQL> create or replace trigger tes before alter on schema
16:00:54 2 declare
16:00:54 3 tp_machine varchar2(64);
16:00:54 4 tp_ip varchar2(30);
16:00:54 5 begin
16:00:54 6 select machine into tp_machine from v$session where audsid=usere
nv('sessionid');
16:00:54 7 select SYS_CONTEXT('USERENV','IP_ADDRESS') into tp_ip from dual;16:00:54 8 insert into tp_log values (tp_machine,tp_ip);
16:00:54 9 end;
16:00:54 10 /触发器已创建已用时间: 00: 00: 00.78
16:00:55 SQL> alter table a modify b number(3);表已更改。已用时间: 00: 00: 00.22
16:01:09 SQL> select * from tp_log;MACHINE IP
---------------------------------------------------------------- ---------------ITB\ZH 10.196.132.56已用时间: 00: 00: 00.31这样就可以把修改表的机器名和ip记录下来,需要其它信息可以相应的添加
注意:我的数据库是Oracle 7.3.4,所以说 SYS_CONTEXT 不支持!to 大家:
因为Oracle的版本太低,所以才来这里问,不然网上满天飞的资料太多了