Search code examples
mysqlprepared-statementsql-grantworkbench

How can i grant execute on a prepared statment to an user?


I have to execute a prepared statment in workbench, logining as an user who doesn't have privileges:

EXECUTE PreparedStatmentName USING @a, @b;

I have tried:

GRANT EXECUTE ON PreparedStatmentName TO 'User';

But it is an "Illegal GRANT/REVOKE command."

(Sorry for my bad english)


Solution

  • The EXECUTE privilege is actually for executing stored procedures, not prepared statements.

    No privilege is needed to PREPARE or EXECUTE an SQL statement, besides the privileges required by that SQL statement itself.

    In other words, if the user has SELECT privilege on a given table, then that user can run an SQL query to do that SELECT, whether they run the SELECT directly or by using PREPARE and EXECUTE.