假设数据库中有n个表。无论在数据库中的任何表上发生什么插入、更新、删除操作,都必须在一个名为"Audit_Trial"的表中捕获,在审计试验表中有以下列。
Server_Name, AT_date, AT_time, Table_name, Column_name, Action, Old_value, New_Value.
哪个服务器上的哪个表的哪个列的哪个日期和时间数据发生了更改,必须捕获。此外,"Action"列跟踪一个操作是插入、更新还是删除,我们还必须捕获旧值和新值。
那么最好的方法是什么呢?我们是否可以创建一个数据库级触发器,它可以在任何插入、更新或删除的情况下触发触发器?请举例说明如何完成这项任务?看看www.tonymarston.net/php-mysql/auditlog.html
虽然它不使用触发器,但它提供了基于每个列和表的审计跟踪。