作/译者:叶金荣(Email: [MySQL FAQ]系列 -- 如何利用触发器实现账户权限审计_权限),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
一个简单的例子:
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中文网”博客 http://www.imysql.cn/