我发现 MySQL 手册中对 DEFINER 的解释令人困惑,因此我不确定运行应用程序的“执行用户”需要哪些权限。为了安全起见,我喜欢将“执行用户”限制为所需的最少权限。
我知道触发器/存储过程的创建者需要超级权限,但“执行用户”是否也需要超级权限?
我在最终失去数据库权限的用户下创建了一个触发器。“执行用户”没有 SUPER 权限,并且具有触发器的 MySQL UPDATE 失败。
我为“执行用户”提供了超级权限,并通过删除和创建触发器将 DEFINER 更改为 root,一切正常。我是否必须为“执行用户”授予超级权限,还是必须确保 DEFINER 用户仍然存在并拥有超级权限?
使用 MySQL 的触发器和存储过程进行用户管理的最佳实践是什么?