【发布时间】:2018-05-01 18:04:59
【问题描述】:
CREATE TRIGGER trigger_LocationType_Insert
BEFORE UPDATE ON LocationType
FOR EACH ROW
SET NEW.NAME = ''
返回此错误:
[HY000][1419] 您没有 SUPER 权限并且启用了二进制日志记录(您*可能*想要使用不太安全的 log_bin_trust_function_creators 变量)
我知道这是因为即使是 root 用户也“拥有除 SUPER 和 FILE 之外的所有权限”。 https://cloud.google.com/sql/docs/mysql/users
而且我认为如果我可以“将 log_bin_trust_function_creators 设置为 1”,那么它会起作用(该用户确实具有 CREATE TRIGGER 权限)。但是,我看不到如何在 Google Cloud SQL 控制台或 sql 语句中执行此操作。
你如何在这个环境中创建触发器?
【问题讨论】:
-
尝试用
DEFINER = user或DEFINER = CURRENT_USER读取创建(dev.mysql.com/doc/refman/5.7/en/create-trigger.html) -
我试过 CREATE DEFINER = CURRENT_USER TRIGGER... 没有任何改变。
标签: mysql triggers google-cloud-sql user-permissions