我的用例是我有一个MYSQL表,后面有一个更改跟踪表。两个表都是InnoDB 我想用触发器强制执行两件事。
一个:在每次更新时强制复制先前的状态(更新触发器执行插入选择查询)这是非常重要的,我已经完成了。
两个:限制对第二个表的访问权限仅供用户阅读,而触发器仍然可以根据需要插入/更新/删除
答案 0 :(得分:0)
对用户访问和触发器的进一步研究挖掘出了这一点:
Mysql 5.5 reference manual: 19.6 Access Control for Stored Programs and Views
原来可以为存储的程序分配一个用户来运行。触发器是存储程序。通过将插入,更新和删除限制为仅由触发器使用并使用触发器(或任何存储的程序)的DEFINER属性的特殊用户,我可以使我想要访问的触发器在该用户下运行。