
20 年未修:MySQL 高危漏洞引发开发者担忧,影响数据库完整性

该漏洞描述为“更新/删除foreignkey后未执行触发器”,注:触发器是一种在特定表(table)上发生插入、更新或删除事件时自动运行的代码,通常用于确保数据完整性。该漏洞显示,在间接更新表后,由于其中关联到其它表,触发器将不会执行。在漏洞报告发布后不久,开发团队表示这是一个“已知问题”,并将在5.1版本中修复,但最终并未修复。开发者们在漏洞报告中提到,这个漏洞“严重威胁到ACID/数据完整性”,2015年时还有开发者表示,“在尝试在级联删除上实现触发器后,我们开始遭遇这个问题。请修复这个问题,非常感谢。”ACID代表原子性、一致性、隔离性和持久性。Reddit上的讨论包括关于使用触发器来确保数据库完整性是否为最佳实践的辩论,以及一个常见的回应:“解决方法不是使用MySQL,而是使用一个合理的关系数据库。”最常见的选择是PostgreSQL。根据DB-Engines的排名,MySQL的受欢迎程度持续下降,尽管它仍然是仅次于Oracle的第二大主流数据库管理系统,领先于排名第三的MicrosoftSQLServer。