Users issuing the CREATE PROCEDURE statement must have the DBA privilege or RESOURCE privilege.
The owner or users with the DBA privilege can execute or drop any stored procedure, and grant the EXECUTE privilege to other users.
When a procedure is being executed on behalf of a user with EXECUTE privilege on that procedure, for the objects that are accessed by the procedure, the procedure owner’s privileges are checked and not the user’s. This enables a user to execute a procedure successfully even when he does not have the privileges to directly access the objects that are accessed by the procedure, so long as he has EXECUTE privilege on the procedure.