我是觸發器的新手。我想知道如何編寫觸發器用於插入日誌記錄到一個名爲LogReportTable的表中,當任何更新時,插入或刪除數據庫裏的任何表。 (此要求的目的是爲了防止未經授權的修改數據庫) 請幫忙。謝謝。 :)SQL觸發器上的任何表修改
回答
您將需要爲此目的創建一個After插入觸發器,但您無法在數據庫級別創建此觸發器。
由於此觸發器將響應DML操作(插入),它將是DML插入觸發器後,您需要爲每個要爲其記錄信息的表創建觸發器。 它是具有DATABASE作用域而不是DML觸發器的DDL觸發器。
您應該避免使用觸發器只要有可能,因爲它們是一種無聲的殺手:S
如果數據庫審計是我覺得你最好還是考慮到Change Data Capture
的唯一目的。
OR Change Tracking
(由Dean先生決定),如果出現任何錯誤,你可以告他:)
「沉默殺手」是什麼意思,Tiggers有什麼不利之處?我有外部數據修改問題。有人修改了數據,但我無法捕捉到未經授權的入侵者。但是如果我可以做一些我在上述問題中提出的問題,那麼我可以跟蹤用戶。請幫助.. :( – tishantha
作者:沉默殺手我的意思是,觸發器響應行動而不是我們直接控制的行爲,一旦你創建了觸發器的東西,你可能會忘記你在該表上有一個觸發器,但後來你做了一些與觸發器定義衝突的事情,如果在你做正確的事情時可能會感到困惑,但是某些事情會爲你做些事情(觸發器觸發),所以有時候可能會有點痛, –
@ M.Ali但是CDC不會幫助OP「發現未經授權的入侵者」 – dean
- 1. SQL Server觸發器 - 修改id列
- 2. SQL - 修改或刪除觸發器
- 3. 創建上次修改的SQL觸發器
- 4. 所有表的SQL Server 2014修改日期觸發器
- 5. 如何修改SSDT中的觸發器
- 6. 會話修改觸發器?
- 7. 修改複製的表上的觸發器是否安全?
- 8. Postgres觸發器會在任何情況下設置修改值?
- 9. Oracle SQL觸發器上的突變表
- 10. 不同表上的SQL觸發器
- 11. SQL觸發維護修改歷史
- 12. SAS SQL上的觸發器
- 13. 如何創建表中的任何更改觸發器
- 14. 修改現有觸發器的步驟
- 15. 在SQL更新觸發器中捕獲修改的行
- 16. SQL Server更新觸發器,獲取只修改的字段
- 17. 修改後的SQL觸發器插入值
- 18. 在SQL Server表上創建觸發器
- 19. PL/SQL觸發器變異表上化合物觸發
- 20. WPF熱鍵無需修改器觸發
- 21. 在Postgresql中修改觸發器
- 22. 修改多個oracle觸發器
- 23. SQL Server 2000和SQL Server 2005中的觸發器行爲:任何更改?
- 24. 當插入的表包含多行時,修改SQL觸發器以工作
- 25. 只有當列被修改時SQL更新觸發器
- 26. 修改SQL觸發器以使用BULK INSERT
- 27. 如何在密碼更改時觸發sql觸發器
- 28. 修復我的多表觸發器?
- 29. SQL觸發器列表Oracle
- 30. 是否有任何非用戶修改的Google應用腳本觸發器
你的SQL Server可能的企業版? – dean
它會審計不安全。只需在每張桌子上放一個觸發器。無論如何,我認爲你需要硬編碼表名。這將得到用戶轉換(nvarchar(100),SYSTEM_USER)。 – Paparazzi
@dean:我正在使用SQL Server 2008 R2 – tishantha