Mysql限制插入/更新/删除从触发器调用(不是从应用程序代码)

时间:2014-03-04 07:34:12

标签: mysql sql triggers innodb

我的用例是我有一个MYSQL表,后面有一个更改跟踪表。两个表都是InnoDB 我想用触发器强制执行两件事。

一个:在每次更新时强制复制先前的状态(更新触发器执行插入选择查询)这是非常重要的,我已经完成了。

两个:限制对第二个表的访问权限仅供用户阅读,而触发器仍然可以根据需要插入/更新/删除

1 个答案:

答案 0 :(得分:0)

对用户访问和触发器的进一步研究挖掘出了这一点:

Mysql 5.5 reference manual: 19.6 Access Control for Stored Programs and Views

原来可以为存储的程序分配一个用户来运行。触发器是存储程序。通过将插入,更新和删除限制为仅由触发器使用并使用触发器(或任何存储的程序)的DEFINER属性的特殊用户,我可以使我想要访问的触发器在该用户下运行。