现在手头有这么一个需求:用户a下创建一张表test,然后用sys用户登录去修改表test的数据,如何获取当前被修改的记录是sys用户做的操作??
我在A用户下创建了表test的触发器,但是貌似不行,请大神指点一二!
------解决思路----------------------
SQL> conn a/a ;
已连接。
SQL>
SQL> create table test(id int , name varchar(10));
表已创建。
SQL> insert into test values (1,'wang');
已创建 1 行。
SQL> insert into test values (2,'li');
已创建 1 行。
SQL>
SQL> create table log_test(id int , username varchar(10)) ;
表已创建。
SQL>
SQL> create trigger test_up
2 before update on test
3 for each row
4 begin
5 insert into log_test (id,username) values(:new.id,user) ;
6 end ;
7 /
触发器已创建
SQL>
SQL> update test set name ='ss' where id =1 ;
已更新 1 行。
SQL>
SQL> conn /as sysdba
已连接。
SQL>
SQL> update a.test set name ='uu' where id =2 ;
已更新 1 行。
SQL>
SQL> select * from a.log_test ;
ID USERNAME
---------- --------------------
1 A
2 SYS
SQL>
SQL>
SQL> drop table a.test purge ;
表已删除。
SQL> drop table a.log_test purge ;
表已删除。
SQL>