Informix Error -388
-388 No resource permission.
If you issued a CREATE TABLE, CREATE INDEX, or CREATE PROCEDURE statement, you cannot execute this statement because your account has not been granted the RESOURCE privilege for this database. You need the RESOURCE privilege to create permanent tables, indexes on permanent tables, and procedures.
If you issued a SET statement, START VIOLATIONS TABLE statement, or STOP VIOLATIONS TABLE statement, you cannot execute this statement because your account has not been granted the RESOURCE privilege for this database. You need the RESOURCE privilege to execute the SET statement for a constraint, trigger, or index defined on a table in the current database. You also need the RESOURCE privilege to execute the START VIOLATIONS TABLE or STOP VIOLATIONS TABLE statement on a base table in the current database.
To recover from this error, contact a person who has the DBA privilege on this database and ask to be granted the RESOURCE privilege for the database.
-388 No resource permission.
If you issued a CREATE DATABASE statement in an 8.32 database server, you cannot execute this statement because you are not in the group specified in the ONCONFIG file parameter DBCREATE_GRP.
To be included in the operating system group specified in DBCREATE_GRP, see your system administrator.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-388 covers a RESOURCE-privilege gap across three distinct scenarios that all surface the same
message:
CREATE TABLE/CREATE INDEX/CREATE PROCEDUREattempted withoutRESOURCEprivilege granted on the current database.SET,START VIOLATIONS TABLE, orSTOP VIOLATIONS TABLEstatements attempted withoutRESOURCEprivilege on the current database.CREATE DATABASEon an 8.32 server, where the current OS user isn't a member of the operating-system group named by theDBCREATE_GRPparameter in theONCONFIGfile — a system-level, not SQL-level, privilege check in this specific case.
Solutions / Resolution
- For scenarios 1 and 2, contact a DBA to grant
RESOURCEprivilege, per the official guidance:GRANT RESOURCE TO app_user; - For scenario 3 (8.32
CREATE DATABASE), work with a system administrator to add the OS user to the group named byDBCREATE_GRPin the server'sONCONFIGfile — this can't be resolved with a SQLGRANTat all. - Identify which scenario applies first — the statement type determines whether the fix is a
database-level
GRANTor an OS-level group membership change.
Examples
Granting RESOURCE for CREATE TABLE/INDEX/PROCEDURE
GRANT RESOURCE TO app_user;
Checking DBCREATE_GRP for the 8.32 CREATE DATABASE case
grep DBCREATE_GRP $ONCONFIG
-- confirm the OS group named here, then check OS-level group
-- membership for the user attempting CREATE DATABASE
Diagnostic Checks
- Identify the specific statement type that failed — this determines whether the fix is a
SQL-level
GRANTor an OS-level group membership issue. - For
CREATE DATABASEon 8.32, checkDBCREATE_GRPinONCONFIGand the user's OS group membership. - For everything else, check
RESOURCEprivilege on the current database for the user.
Related Errors / Related Topics
- -387 — "No connect permission." A related database-level privilege gap, one level below
RESOURCEin terms of what it permits. - -315 — "No create index permission." A related, narrower privilege restriction —
specifically about
CREATE INDEX, one of the several statement typesRESOURCEprivilege also covers more broadly.
Identify the specific statement type first — a CREATE DATABASE failure on 8.32 needs an
OS-level group-membership fix, not a SQL GRANT, while everything else needs RESOURCE
privilege granted via SQL.