日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sqlserver 触发器 update_运维日记| SQL server 那点事——DML触发器

發布時間:2023/12/10 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlserver 触发器 update_运维日记| SQL server 那点事——DML触发器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位新朋友~記得先點藍字關注我哦~

11月19日,21點,小編正六指霸屏,決賽圈1V4,忽然,電話響了,這種感覺很熟悉,不錯,上次差點推掉對面水晶的那一幕又上演了……作為一名美創的員工,客戶才是第一位,我毫不猶豫的摁下了接聽鍵。

XXX嗎?我數據庫有人篡改了某張表,我一聽,這個問題應該難度不大(自信ing!),趕緊回應客戶:

您數據庫有保留最近一次完整備份以及之后的完整日志嗎?

1、有的話可以用完整備份恢復+日志備份(誤操作前的LSN恢復)

2、也可以通過sys.fn_dblog()獲取二進制日志,再解析出來誤操作的語句進行恢復

結果客戶的需求并不是該操作如何恢復,而是想確定這個篡改表的始作俑者,以及如何去記錄以后數據庫這種類似的情況。我很清楚的告訴客戶,再沒部署任何監控記錄的基礎上,解析日志也只能獲取相關的數據記錄,無法獲取更過的信息(當然,不排除某種高端工具可能會獲取)。

至于以后如何防患,如何記錄,這個可以通過SQL server觸發器或者審計功能來實現,而本文,將著重介紹DML觸發器以及它如何實現客戶的需求,請看下文。

01

DML觸發器介紹

DML觸發器是一種特殊類型的存儲過程,它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應 INSERT、UPDATE 或 DELETE 語句。

02

常見的DML觸發器

2.1 創建語句

2.2 插入測試

可見,因為觸發器的緣故,不滿足要求的數據無法插入(這里的age>=100雖有悖常理,實則祝大家都長命百歲,哈哈)

?回到我們的主旨,這種觸發器雖然能起到防患的作用,但是依舊無法達到我們預期的效果,我們不僅要防患于未然,更要能事事追蹤溯源,話不多說,請看下文,也是我們這篇文章最最重要的干貨!!!

03

如何用DML觸發器記錄操作

實現原理:

DML操作記錄,簡單的說,就是日志類觸發器,也就是盡量全面地反映數據庫表所進行的insert、update、delete操作,便于日后翻閱。

1、創建測試表:

2、創建DML日志表:

3、創建DML觸發器:

4、查看當前觸發器日志表:

5、用hostname\administrator執行DML操作:

執行結果為:

6、再用dsz登錄執行DML操作:

執行結果為:

7、查看DML日志表:

顯而易見,剛才的6次insert,2次update(一次update對應兩條記錄,因為分別記錄了name的更改前后的值—),以及2次delete,都清楚的記錄在該表內。

眼尖的網友可能要問,USERID和HOSTNAME很清楚,最后這兩列有什么特殊的含義嗎?

我們的觸發器日志表如果僅僅記錄一些基礎的信息,還遠遠不夠,我們還要將更改的數據挖掘出來,以便在需要的時候進行逆向DML。

那么,我們是不是也可以修改日志表,添加更多我們需要捕獲的信息呢,答案是肯定的,不過這個就交給廣大網友去探索、去更改了……

8、truncate 掉test表,再查看DML日志表:

可以看到,依舊只有12條記錄,這是為什么呢?明明test的表都被刪干凈了啊???

莫慌莫慌,大家都知道,truncate和delete不同,它屬于DDL語句,所以,關于DDL的觸發器,且看下回分解,不要走開哦。

美創運維中心數據庫服務團隊擁有Oracle ACE 1人、OCM 10余人、數十名Oracle OCP、MySQL OCP、紅帽RHCA、中間件weblogic、tuxedo認證、達夢工程師 ,著有《Oracle DBA實戰攻略》,《Oracle數據庫性能優化方法和最佳實踐》,《Oracle內核技術揭秘》等多本數據運維優化書籍。目前運維各類數據庫合計2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、達夢等主流商業和開源數據庫。并成為首批國內達夢戰略合作伙伴之一,擁有海量經驗和完善的人員培養體系。并同時提供超融合,私有云整體解決方案。

總結

以上是生活随笔為你收集整理的sqlserver 触发器 update_运维日记| SQL server 那点事——DML触发器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。