1370
MariaDBerrorpermissionshigh confidence
execute/create/alter/drop command denied for routine
Production Risk
Medium — application features depending on stored routines fail.
What this means
The user does not have the required privilege (EXECUTE, CREATE ROUTINE, ALTER ROUTINE, or DROP) on the specified stored routine.
Why it happens
- 1User lacks EXECUTE privilege when calling a procedure or function
- 2User lacks ALTER ROUTINE or DROP privilege when modifying or dropping routines
- 3Routine defined with SQL SECURITY DEFINER and the definer no longer has the required privileges
How to reproduce
trigger — this will error
trigger — this will error
CALL my_proc(); -- user lacks EXECUTE privilege
expected output
ERROR 1370 (42000): execute command denied to user 'user'@'host' for routine 'db.my_proc'
Fix 1
Grant EXECUTE privilege
Grant EXECUTE privilege
GRANT EXECUTE ON PROCEDURE db.my_proc TO 'user'@'host';
Why this works
Allows the user to call the procedure.
Fix 2
Grant all routine privileges
Grant all routine privileges
GRANT CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON db.* TO 'user'@'host';
Why this works
Covers create, alter, and execute operations on routines.
What not to do
✕
Sources
Official documentation ↗
MySQL 8.0 — 1370 ER_PROCACCESS_DENIED_ERROR
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev