我的网页是用 PHP 编码的,并链接到 MySQL Server Management Studio 数据库。这个网页的主要功能是允许用户通过这个网页在数据库中搜索数据。我想创建一个搜索日志来跟踪用户活动(谁,什么,他们什么时候搜索,他们得到了什么结果)。我怎样才能做到这一点?
对于管理员,他们有权从数据库表中添加、删除、编辑数据。我想创建一个审计日志来捕获添加、删除或编辑的日期时间、用户 ID、旧值、新值和字段等。
由于我是这些新手,因此感谢大家的所有帮助。先感谢您。
建立您自己的审计追踪可能有隐藏的问题和警告
假设这个结构可以解决问题:
CREATE TABLE audit_trail (
id int not null primary key auto_increment,
user_id int not null,
action_time datetime not null,
action_performed enum ('view','add', 'edit', 'delete'),
table_affected varchar(50) not null, -- table of affected item
item_affected int not null, -- supposing every table has it's own id key
old_value varchar(1000),
new_value varchar(1000)
)
如何存储新旧值 - 这是您的决定。首先认为自定义审计日志不适合恢复值(mysqldump 和其他实用程序来救援)。但通常存储旧值和新值的短字符串表示就足够了(这就是 varchar 的原因)