消除MySQL表上迟来的数据操作的可能性

时间:2017-11-15 10:10:32

标签: mysql hash database-trigger

我想保证MySQL表中的行在创建后无法操作。

我知道只授予insert和select权限是这方面的一步,但我也想确保root用户在插入后不能更改数据。

增量散列: 为此,我考虑了一个额外的列'hash',它存储了与新列数据相连的最后一行哈希的哈希值。

如果我然后导出哈希例如。每天都可以检测到任何操纵。

我是对的吗?你能指点我已经完成的一些资源吗?人们会用触发器做到这一点吗?甚至可能只在一个只能由root访问的辅助表中?

1 个答案:

答案 0 :(得分:0)

类似的东西:

DELIMITER $$
CREATE TRIGGER trigger_hash
AFTER INSERT
   ON table_name FOR EACH ROW

BEGIN
UPDATE table_name
SET hash = MD5(concat(NEW.field1, NEW.field2, NEW.field3, ...))
WHERE id= NEW.id
END;
$$
DELIMITER ;