亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

?使用觸發(fā)器限制表數(shù)據(jù)被修改

IT那活兒 / 1471人閱讀
?使用觸發(fā)器限制表數(shù)據(jù)被修改

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!

文章背景

日常維護(hù)工作中,我們有時(shí)會(huì)需要對(duì)某張表限制修改,此時(shí)我們可以通過(guò)權(quán)限來(lái)控制。但是權(quán)限控制往往不能限制自己模式(OWNER)的用戶(hù)以及擁有dba等權(quán)限的用戶(hù)修改。
此時(shí)我們可以通過(guò)創(chuàng)建觸發(fā)器來(lái)限制并提醒對(duì)方,當(dāng)前表暫時(shí)不允許修改。
例如:在數(shù)據(jù)遷移過(guò)程中,我們?cè)谟胦gg等工具同步數(shù)據(jù)時(shí),同步過(guò)程可能會(huì)持續(xù)幾天甚至幾十天,這期間我們希望源端的數(shù)據(jù)隨意,但目標(biāo)端的數(shù)據(jù)都必須來(lái)自于源端的同步,而不允許應(yīng)用或者其它維護(hù)人員擅自修改目標(biāo)表,導(dǎo)致同步數(shù)據(jù)的兩端不一致。

創(chuàng)建步驟

以u(píng)ser1.table2表為例
SQL> select * from user1.table2;
ID REM RETIME

---------- ------------------------ ------------

1 1 rows 05-JAN-22
創(chuàng)建觸發(fā)器
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
-- 此處允許用戶(hù) oggusr 相當(dāng)于白名單
NULL;
ELSE
raise_application_error(-20008,非指定用戶(hù)不允許修改,請(qǐng)聯(lián)系管理員。);
END IF;
END;
/

完成。

效果展示

使用表自身用戶(hù)user1(或者其它用戶(hù)包括高權(quán)限用戶(hù)登錄)都不能修改表:
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: 非指定用戶(hù)不允許修改,請(qǐng)聯(lián)系管理員。
ORA-06512: at "SYSTEM.OGG_TRG_TABLE2", line 8
ORA-04088: error during execution of trigger SYSTEM.OGG_TRG_TABLE2
SQL>


使用指定用戶(hù)可以修改表:


SQL>
SQL> conn ogguser/Ogguser_123
Connected.
SQL>
SQL> insert into user1.table2 values(2,2 rows,sysdate);
1 row created.
SQL>


 


END




本文作者:譚 凱

本文來(lái)源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/129514.html

相關(guān)文章

  • 客官,這里有一份《MySQL 必知必會(huì)》讀書(shū)筆記,請(qǐng)您笑納!

    摘要:主鍵唯一標(biāo)識(shí)表中每行的這個(gè)列稱(chēng)為主鍵。不為空,每行數(shù)據(jù)必須具有一個(gè)主鍵值。主要負(fù)責(zé)與用戶(hù)進(jìn)行交互,接受用戶(hù)的指令,然后發(fā)出請(qǐng)求給,負(fù)責(zé)數(shù)據(jù)訪問(wèn)和處理,然后將結(jié)果返回給。注意雖然似乎通配符可以匹配任何東西,但有一個(gè)例外,即。 為什么寫(xiě)這篇文章 因?yàn)槲易罱囊恍┕ぷ鲀?nèi)容跟數(shù)據(jù)分析比較密切,所以需要對(duì)SQL使用得比較熟練,所以便閱讀了《MySQL 必知必會(huì)》這本書(shū),為了檢驗(yàn)自己的閱讀效果及幫...

    liuyix 評(píng)論0 收藏0
  • 客官,這里有一份《MySQL 必知必會(huì)》讀書(shū)筆記,請(qǐng)您笑納!

    摘要:主鍵唯一標(biāo)識(shí)表中每行的這個(gè)列稱(chēng)為主鍵。不為空,每行數(shù)據(jù)必須具有一個(gè)主鍵值。主要負(fù)責(zé)與用戶(hù)進(jìn)行交互,接受用戶(hù)的指令,然后發(fā)出請(qǐng)求給,負(fù)責(zé)數(shù)據(jù)訪問(wèn)和處理,然后將結(jié)果返回給。注意雖然似乎通配符可以匹配任何東西,但有一個(gè)例外,即。 為什么寫(xiě)這篇文章 因?yàn)槲易罱囊恍┕ぷ鲀?nèi)容跟數(shù)據(jù)分析比較密切,所以需要對(duì)SQL使用得比較熟練,所以便閱讀了《MySQL 必知必會(huì)》這本書(shū),為了檢驗(yàn)自己的閱讀效果及幫...

    draveness 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<