Kann nicht erstellen Sie MySQL trigger mit TRIGGER-Privileg 5.1.32
Meine anderen Entwicklern und ich haben unsere eigene Entwicklung schemas auf eine gemeinsame MySQL-Entwicklung-Datenbank. Meine Aufgabe verlangt von mir zu erstellen von Triggern in mein schema, aber ich habe schon erfolglos bisher.
CREATE TRIGGER myTrigger AFTER DELETE on myTable
FOR EACH ROW BEGIN
-- DO STUFF
END;
MySQL sagt:
FEHLER 1419 (HY000): Sie haben nicht die SUPER-Berechtigung und Binär-logging aktiviert ist (Sie könnte verwenden möchten, die weniger sicher ist log_bin_trust_function_creators variable)
Ich habe in der MySQL-Handbuch (http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html):
Den TRIGGER-Privileg ermöglicht Ihnen das erstellen und löschen von Triggern. Sie müssen diese Berechtigungen für eine Tabelle zu erstellen oder drop Trigger für die Tabelle. Dieses Privileg wurde in MySQL 5.1.6 Hinzugefügt. (Vor MySQL 5.1.6 trigger-Operationen erforderlich, die SUPER-Berechtigung.)
Sind wir mit "5.1.32-enterprise-gpl-advanced-log", also der TRIGGER-Privileg sollte ausreichend sein; aber dem DBA gewährte mir die TRIGGER-Privileg mySchema
.* und ich kann es sehen, wenn ich die SHOW GRANTS;, aber ich bekomme immer noch diese Fehlermeldung, dass "SUPER" - Privileg. Wir wollen nicht zu geben, alle von den Entwicklern SUPER.
Irgendwelche Vorschläge?
InformationsquelleAutor Michael Moussa | 2009-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist die bug-report für dieses. Eine option ist die Ausführung mit der
--log-bin-trust-function-creators-option aktiviert, die es Ihnen erlauben, erstellen Sie Trigger ohne das SUPER-Privileg. Auf dieser Seite erklärt, was drehen, dass die option bedeutet. Im Grunde hat es damit zu tun, ob oder nicht MySQL denkt Ihr Auslöser sind deterministisch (d.h. sicher für die Replikation). Der DBA kann oder kann nicht bequem laufen in diesem Modus. Es ist nicht ideal, aber besser als geben aus SUPER...
UPDATE: Die Doku auf der zweiten link eigentlich machen es klingen wie Sie können in der Lage sein, dies zu umgehen, durch die Verwendung von row-basierte Replikation, oder auch mixed-mode-Replikation. Zumindest würde machen es sicher für die Replikation. Ob oder nicht Sie würde noch verpflichtet werden, SUPER, ich weiß es nicht, aber es kann einen Versuch Wert sein.
MySQL Bug #52127 sagt, dass Sie nicht ermöglichen Benutzern das hinzufügen von Triggern ohne die Gewährung SUPER Privileg, wenn Sie mit binary-logging aktiviert.
Es ist erwähnenswert, dass dieser Fehler ist eigentlich sehr nützlich, manchmal, wenn Sie mit einer Replikation, wie Sie können verhindern, dass Sie unbeabsichtigt erstellen Sie einen trigger, der nicht die Arbeit in einer Einrichtung der Replikation. Ein Beispiel HIERFÜR wäre, wenn Sie sich mit etwas wie RAND() als Teil der Auslöser.
InformationsquelleAutor nathan