MySQL:没有SUPER的触发器/分隔符

时间:2011-09-22 19:50:52

标签: mysql permissions triggers

尝试运行此SQL:

DELIMITER $$

CREATE TRIGGER crypt_f
BEFORE INSERT ON c_data_test
FOR EACH ROW
BEGIN
UPDATE c_data_test
SET f_id = ENCRYPT(f_id, 'key');
END$$

DELIMITER ;

给出了这个错误:

  

错误1227(42000):拒绝访问;您需要此操作的SUPER权限

我们不允许从我们的主机进行超级访问。如何创建此触发器?

1 个答案:

答案 0 :(得分:3)

您必须要求主机的DBA为您运行触发器create语句。最新版本的MySQL允许非SUPER用户创建触发器(MySQL 5.1.6和更高版本)。但是,如果启用了二进制日志记录,则仍需要SUPER权限。

首先,仔细检查MySQL运行的版本,如果MySQL 5.1.6或更高版本以及二进制日志记录关闭,请从主机DBA请求TRIGGER权限,否则你必须要求DBA创建触发你。