我想向我的所有表中添加兩列[創建時間] & [修改時間]捕獲審計跟蹤。將來,這些字段可能用於分區表。請建議這樣做的最佳方法是什麼?通過DB上的某些觸發器或通過代碼更新這些值是否明智?我們正在使用Hibernate API與Oracle 11g進行對話。每行執行審計跟蹤的方法
1
A
回答
1
既然你已經使用Hibernate,看看Hibernate Envers:
的Envers項目旨在實現持久化類的容易審計/版本。你所要做的就是用@Audited註釋你想要審計的持久類或它的一些屬性。對於每個審計實體,將創建一個表格,該表格將保存對實體所做更改的歷史記錄。然後您可以毫不費力地檢索和查詢歷史數據。
這是更重量級的解決方案,但給你的應用程序完全控制。
或者,您可以通過Oracle PL/SQL觸發器來執行此操作,但您的應用程序對此有限制。
0
有利有弊。
個人而言,我使用觸發器。
雖然這樣做會導致一個有趣的邊界案例,但是如果您有一個主表和許多相關的表(您想要共享審計跟蹤)。說出與訂單相關的訂單+訂單行+ [大量其他相關表格]。在這種情況下,要審覈的有趣數據是訂單,因此訂單應該可以包含審計相關的細節。如果你有觸發器爲每個插入/更新/刪除命令行+ [很多其他相關表]觸發,那麼性能最終會受到影響。
相關問題
- 1. Oracle - 審計跟蹤
- 2. VB6審計跟蹤
- 3. Umbraco審計跟蹤報告
- 4. 審計跟蹤技術
- 5. Telerik Open access審計跟蹤
- 6. 在提交之前跟蹤和執行同行評審的最佳方式
- 7. oracle 11g中的審計跟蹤設置
- 8. 帶內置審計跟蹤的ORM
- 9. 執行跟蹤腳本
- 10. 需要幫助,使用ATK框架進行審計跟蹤
- 11. 使用ServiceStack和ORMLite SQLServer進行審計跟蹤
- 12. 創建審計表,跟蹤每個更改的列
- 13. 跟蹤在asp.net中的方法的執行時間
- 14. 跟蹤在.net程序集或類中執行的方法
- 15. 有什麼方法可以跟蹤C#中IQueryable的執行嗎?
- 16. MySQL db審計跟蹤觸發器
- 17. Oracle - 審計跟蹤生成器?
- 18. 審計跟蹤,但不會保存
- 19. 執行CMMI物理配置審計的最佳方法?
- 20. 是否可以審計在頁面上執行的JavaScript方法?
- 21. 在跟蹤UIScrollView時,沒有爲每幀執行的NSRunLoopCommonModes的CADisplayLink?
- 22. 的Python - 跟蹤模塊執行
- 23. 如何跟蹤執行exe的次數
- 24. Chrome中的Javascript執行跟蹤 - 如何?
- 25. Visual Studio .NET C#可執行的跟蹤
- 26. 如何跟蹤執行的CUDA塊?
- 27. 跟蹤執行的順序在Java中
- 28. 假期審批/跟蹤
- 29. 流量例如在weblogic的跟蹤/審計跟蹤數據EM不可用
- 30. 如何跟蹤數據庫表中多列的更改以進行審計?