点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!


文章背景




创建步骤


SQL> select * from user1.table2;
ID REM RETIME
---------- ------------------------ ------------
1 1 rows 05-JAN-22
CREATE OR REPLACE TRIGGER system.ogg_trg_table2 AFTER INSERT OR DELETE OR UPDATE ON user1.table2
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE
v_session_user varchar2(30);
BEGIN
v_session_user := SYS_CONTEXT('USERENV', 'SESSION_USER');
IF v_session_user = 'OGGUSER' THEN
NULL;
ELSE
raise_application_error(-20008,'非指定用户不允许修改,请联系管理员。');
END IF;
END;
/
完成。


效果展示


SQL>
SQL> conn user1/User1_123
Connected.
SQL>
SQL> insert into user1.table2 values(2,'2 rows',sysdate);
insert into user1.table2 values(2,'2 rows',sysdate)
*
ERROR at line 1:
ORA-20008: 非指定用户不允许修改,请联系管理员。ORA-06512: at "SYSTEM.OGG_TRG_TABLE2", line 8
ORA-04088: error during execution of trigger 'SYSTEM.OGG_TRG_TABLE2'
SQL>
使用指定用户可以修改表:
SQL>
SQL> conn ogguser/Ogguser_123
Connected.
SQL>
SQL> insert into user1.table2 values(2,'2 rows',sysdate);
1 row created.
SQL>
END
本文作者:谭 凯
本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




