Specific to procedures, the MySQL permissions scheme has the CREATE ROUTINE, ALTER ROUTINE, and EXECUTE privilege. | |
The permissions required for working with stored procedures are as follows: | |
Viewing permissions | |
To view stored procedures with SHOW PROCEDURE STATUS, you must have SELECT access to the mysql.proc table. | |
Or you must have the ALTER ROUTINE privilege for that particular procedure. | |
Calling permissions | |
To call a stored procedure | |
You need the ability to connect to the server and have the EXECUTE permission for the procedure. | |
EXECUTE permissions can be granted globally in the mysql.user table. | |
EXECUTE permissions can be granted at the database level in the mysql.db table | |
EXECUTE permissions can be granted for a specific routine in the mysql.procs_priv table. | |
Creating and altering permissions | |
To govern creating and altering a stored procedure, MySQL uses the CREATE ROUTINE and ALTER ROUTINE privilege. | |
Permissions for creating or changing procedures can be granted globally in the mysql.user table. | |
Permissions for creating or changing procedures can be granted at the database level in the mysql.db table. | |
Permissions for creating or changing procedures can be granted for a specific routine in the mysql.procs_priv table. | |
Dropping permissions | |
To drop a procedure, you must have the ALTER ROUTINE privilege. | |
Permissions for dropping procedures can be granted globally in the mysql.user table. | |
Permissions for dropping procedures can be granted at the database level in the mysql.db table. | |
Permissions for dropping procedures can be granted for a specific routine in the mysql.procs_priv table. |