Informix Error -706
-706 Execute privilege denied on procedure procedure-name.
A user who does not own the procedure or is not DBA must have Execute privilege in order to run a procedure.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-706 fires when a session that neither owns a procedure nor holds DBA privilege attempts to execute it without having been granted Execute privilege — per the official guidance, this is the specific privilege required.
- A session calling a procedure it doesn't own and hasn't been granted Execute privilege on — the direct, only cause.
- A privilege grant that was expected to already exist but was never actually issued, or was revoked since.
Solutions / Resolution
- Have the procedure's owner (or a DBA-privileged user) grant Execute privilege:
GRANT EXECUTE ON PROCEDURE update_order TO app_user; - Confirm the procedure's owner first, if it's not obvious who should grant the privilege:
SELECT procname, owner FROM sysprocedures WHERE procname = 'update_order'; - Check existing grants to confirm whether Execute privilege genuinely isn't there, versus
being granted on a different (similarly-named) routine:
SELECT a.grantee, a.procauth FROM sysprocauth a, sysprocedures p WHERE a.procid = p.procid AND p.procname = 'update_order';
Examples
Hitting the restriction
EXECUTE PROCEDURE update_order(42, 'shipped');
-- -706: app_user has no Execute privilege on update_order
Granting it
-- Run by the owner of update_order, or a DBA-privileged user:
GRANT EXECUTE ON PROCEDURE update_order TO app_user;
Diagnostic Checks
- Query
sysproceduresfor the procedure's owner andsysprocauth(joined onprocid) for existing Execute grants, to confirm the privilege genuinely isn't there.
Related Errors / Related Topics
- -674 — "Routine routine-name cannot be resolved." A related routine-call error — missing execute permission is one of several conditions that error covers, while -706 is specific to the permission check itself.
Confirm the procedure's actual owner via sysprocedures, then have them (or a DBA) grant
Execute privilege.