Подтвердить что ты не робот

Невозможно создать триггер MySQL с привилегией TRIGGER на 5.1.32

У моих коллег-разработчиков и у меня есть собственные схемы разработки в общей базе данных разработки MySQL. Мое назначение требует от меня создания триггеров в моей схеме, но пока я не увенчался успехом.

CREATE TRIGGER myTrigger AFTER DELETE on myTable
FOR EACH ROW BEGIN
    -- DO STUFF
END;

MySQL говорит: ОШИБКА 1419 (HY000): у вас нет привилегии SUPER, и двоичный журнал включен (вы можете использовать менее безопасную переменную log_bin_trust_function_creators)

Я проверил руководство MySQL (http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html):

Приоритет TRIGGER позволяет создавать триггеры. Вы должны иметь эту привилегию для создания таблицы или удаления триггеров для этой таблицы. Эта привилегия была добавлена ​​в MySQL 5.1.6. (До MySQL 5.1.6 триггерные операции требовали привилегии SUPER.)

Мы запускаем "5.1.32-enterprise-gpl-advanced-log", поэтому привилегии TRIGGER должны быть достаточными; однако, DBA предоставил мне привилегию TRIGGER на mySchema. *, и я вижу это, когда я делаю SHOW GRANTS;, но я все еще получаю эту ошибку в отношении необходимости привилегии SUPER. Мы не хотим предоставлять всем разработчикам SUPER.

Любые предложения?

4b9b3361

Ответ 1

Вот отчет об ошибке для этого. Один из вариантов - запустить с Включена опция -log-bin-trust-function-creators, которая позволит вам создавать триггеры без привилегии SUPER. На этой странице объясняется, что это значит, что означает этот параметр. В основном это связано с тем, считает ли MySQL ваши триггеры детерминированными (т.е. Безопасными для репликации). В этом режиме ваш администратор базы данных может работать или не работать. Это не идеально, но лучше, чем выдавать SUPER...

ОБНОВЛЕНИЕ. Документы на втором канале действительно напоминают, что вы можете обойти это, используя репликацию на основе строк или даже репликацию смешанного режима. По крайней мере, это сделает его безопасным для тиражирования. Независимо от того, требуется ли вам еще SUPER, я не знаю, но, возможно, стоит попробовать.