我正在推出一些软件的更新,其中包括运行 SQL 脚本来创建触发器。
在我的.sql
文件语法中,我没有包含任何 DEFINER 子句,因为我希望我的客户的生产 MySQL 用户(他们自己设置)能够在程序运行时执行这些触发器。
问题是,测试表明 MySQL 会自动为 TRIGGER 创建一个 DEFINER,使用'CURRENT_USER'@'%'
. 当您做明智的事情并使用(受限)帐户进行日常数据操作并使用另一个帐户进行大更新(root ?)时,您最终会尝试使用一个或多个没有权限的用户执行 TRIGGER去做吧。
有没有办法删除这个“自动添加定义器”功能?
我尝试输入DEFINER = '%'@'%'
,但这不被接受。