资讯专栏INFORMATION COLUMN

​使用触发器限制表数据被修改

IT那活儿 / 1398人阅读
​使用触发器限制表数据被修改

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

文章背景

日常维护工作中,我们有时会需要对某张表限制修改,此时我们可以通过权限来控制。但是权限控制往往不能限制自己模式(OWNER)的用户以及拥有dba等权限的用户修改。
此时我们可以通过创建触发器来限制并提醒对方,当前表暂时不允许修改。
例如:在数据迁移过程中,我们在用ogg等工具同步数据时,同步过程可能会持续几天甚至几十天,这期间我们希望源端的数据随意,但目标端的数据都必须来自于源端的同步,而不允许应用或者其它维护人员擅自修改目标表,导致同步数据的两端不一致。

创建步骤

以user1.table2表为例
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
-- 此处允许用户 oggusr 相当于白名单
NULL;
ELSE
raise_application_error(-20008,非指定用户不允许修改,请联系管理员。);
END IF;
END;
/

完成。

效果展示

使用表自身用户user1(或者其它用户包括高权限用户登录)都不能修改表:
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那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129514.html

相关文章

  • 客官,这里有一份《MySQL 必知必会》读书笔记,请您笑纳!

    摘要:主键唯一标识表中每行的这个列称为主键。不为空,每行数据必须具有一个主键值。主要负责与用户进行交互,接受用户的指令,然后发出请求给,负责数据访问和处理,然后将结果返回给。注意虽然似乎通配符可以匹配任何东西,但有一个例外,即。 为什么写这篇文章 因为我最近的一些工作内容跟数据分析比较密切,所以需要对SQL使用得比较熟练,所以便阅读了《MySQL 必知必会》这本书,为了检验自己的阅读效果及帮...

    liuyix 评论0 收藏0
  • 客官,这里有一份《MySQL 必知必会》读书笔记,请您笑纳!

    摘要:主键唯一标识表中每行的这个列称为主键。不为空,每行数据必须具有一个主键值。主要负责与用户进行交互,接受用户的指令,然后发出请求给,负责数据访问和处理,然后将结果返回给。注意虽然似乎通配符可以匹配任何东西,但有一个例外,即。 为什么写这篇文章 因为我最近的一些工作内容跟数据分析比较密切,所以需要对SQL使用得比较熟练,所以便阅读了《MySQL 必知必会》这本书,为了检验自己的阅读效果及帮...

    draveness 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<