Skip to content

fix: name SUPER as the only grant that lifts the trigger denial - #142

Merged
gantoine merged 2 commits into
mainfrom
fix/mariadb-trigger-privilege-grant
Sep 13, 2026
Merged

fix: name SUPER as the only grant that lifts the trigger denial#142
gantoine merged 2 commits into
mainfrom
fix/mariadb-trigger-privilege-grant

Conversation

@gantoine

@gantoine gantoine commented Sep 13, 2026

Copy link
Copy Markdown
Member

Companion to rommapp/romm#4490, which adds a startup guard for this failure and links readers to this page.

The grant this page recommends does not work. install/databases.md offered GRANT BINLOG ADMIN ON *.* TO 'romm-user'@'%'; -- MariaDB 10.5+ as the first remedy for error 1419. That privilege leaves the denial fully in place: MariaDB's check for trigger DDL under binary logging still tests SUPER specifically, and 10.5's finer-grained split never carved this one out.

Measured on throwaway containers started with --log-bin --log-bin-trust-function-creators=0, with a normal application user:

Server GRANT BINLOG ADMIN GRANT SUPER
MariaDB 10.11.19 ERROR 1419 works
MariaDB 11.3.2 ERROR 1419 works
MariaDB 11.8.9 ERROR 1419 works

So the page now offers SUPER alone.

The MySQL framing was also wrong. The section said MySQL refuses trigger DDL under binary logging and singled out MySQL 8's binlog-on-by-default as a reason readers would hit this. MySQL dropped the SUPER requirement for trigger DDL in 8.0.22, so those readers are not affected at all:

Server binlog non-SUPER user running DROP TRIGGER IF EXISTS
MySQL 8.0.46 on succeeds
MySQL 8.4.11 on succeeds

The section is now scoped to MariaDB, with one sentence saying MySQL 8.0.22+ is not affected.

The SET GLOBAL log_bin_trust_function_creators = 1 remedy and the my.cnf guidance are unchanged; both were already correct.

Verification: mkdocs build --strict passes. Locally I had to disable the social plugin for the run, since this machine has no libcairo; that plugin is untouched by the change and CI builds it with cairo installed.

AI assistance disclosure: written with Claude Code (Claude Opus 5), including the container testing above. I reviewed the result.

🤖 Generated with Claude Code

gantoine and others added 2 commits September 13, 2026 08:37
BINLOG ADMIN does not lift error 1419 on any MariaDB version, so the grant
this page recommended first leaves the reader exactly where they started.
Verified on 10.11.19, 11.3.2 and 11.8.9: only SUPER or the global flag works.

MySQL stopped requiring SUPER for trigger DDL in 8.0.22, so scope the section
to MariaDB rather than sending MySQL 8 readers after a privilege they hold no
need for. Verified on 8.0.46 and 8.4.11 with binary logging on.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gantoine
gantoine merged commit eb16ae5 into main Sep 13, 2026
4 checks passed
@gantoine
gantoine deleted the fix/mariadb-trigger-privilege-grant branch September 13, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant