一个简单的例子:
delimiter | create trigger before_insert_a before insert on a for each row begin if USER() != 'root@localhost' then insert into log values(user()); end if; end; |
这里不能用 current_user() 代替 user(),因为 current_user() 取得的是创建该trigger的账户。
上面只是个简单的例子,可以通过查询mysql.user, mysql.db 等表来做更详细的权限验证判断。
需要注意的是:启用触发器后会带来系统性能上的下降,需要有个权衡。
上面只是个简单的例子,可以通过查询mysql.user, mysql.db 等表来做更详细的权限验证判断。
需要注意的是:启用触发器后会带来系统性能上的下降,需要有个权衡。
本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/308620,如需转载请自行联系原作者