So today presented my with an interesting issue. A simple INSERT statement being run by a functional account in my local mySQL install failed with the following message:
1227Access denied; you need the SUPER privilege for this operation
Mind you, this is working fine in production, and granting SUPER to a functional account defeats the entire purpose of database security.
After digging, it was brought to my attention that in my version of mySQL (5.0.67), the SUPER privilege is required to execute TRIGGERs, which this table did have.
Sure enough, dropping the TRIGGER allowed the query to be performed without issue. The really interesting part is that after re-adding the TRIGGER, the query STILL worked. I’m guessing there was something wrong with the time of the user creation vs. the TRIGGER creation in my local environment.
The bottom line is, if you are receiving an error about not having SUPER privileges for a simple query, try dropping any triggers and re-adding them.