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