Informix Error -850: User does not have permission to modify this menu.
Cause and resolution
User does not have permission to modify this menu.
Only the user who created the sysmenus table in this database can modify the menu structure. That user first selected the Modify option of the User-Menu display while this database was current. To determine who that user is, query systables as follows:
SELECT owner FROM systables WHERE tabname LIKE 'sysmenu*'
If this action is not appropriate, ask that person to drop the sysmenus and sysmenuitems tables, and then have the person who should maintain the menus re-create them.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-850 fires when a session attempts to modify the menu structure but isn't the user who originally
created the sysmenus table for this database — per the official guidance, only that specific
user (the one who first selected the Modify option of the User-Menu display while this database
was current) can modify it.
- A session other than the original
sysmenuscreator attempting to modify the menu structure, per the official guidance — the direct, only cause. - Ownership of the menu system not documented/remembered, leading to confusion about who is actually authorized to make changes.
Solutions / Resolution
- Identify who created the
sysmenustable, per the official guidance's documented query:
(the official guidance's own example uses aSELECT owner FROM systables WHERE tabname LIKE 'sysmenu%';\*wildcard character; standard SQLLIKEwildcard syntax uses%— adjust to match the actual wildcard character your client/tool expects.) - Have that user perform the modification, if reasonable.
- Or, if that's not appropriate, have that user drop the
sysmenusandsysmenuitemstables, per the official guidance, and have the person who should actually maintain the menus re-create them — this transfers ownership to the new creator.
Examples
Identifying the menu system's owner
SELECT owner FROM systables WHERE tabname LIKE 'sysmenu%';
Diagnostic Checks
- Run the official guidance's
systablesquery to identify the currentsysmenusowner before deciding whether to involve them or have them transfer ownership.
Related Errors / Related Topics
- -818 — "Specified user menu not found." A related menu error, about a menu name not being found rather than a permission restriction on modifying the menu structure.
- -845 — "There are no user-menus in the database." A related menu error, about the
sysmenustable not existing/being empty, a prerequisite condition distinct from this ownership-based permission restriction.
Only the original sysmenus creator can modify the menu structure — identify them via
systables, or have them drop and re-create it under new ownership.