What it means
The message names the authorization ID (or the role, inside a trusted context) and the operation it tried, for example CREATE TABLE or BINDADD. Db2 does not run the statement and returns -552 with SQLSTATE 42502.
If RACF controls Db2 access, the ID in the -552 message can differ from the user ID that RACF shows in its ICH408I message. Revoking some system authorities (System DBADM, DATAACCESS, ACCESSCTRL, CREATE_SECURE_OBJECT) needs SECADM.
Typical causes
- The job or user runs under an ID that was never granted the system or database privilege needed (for example CREATETAB, BINDADD, CREATEIN).
- A bind runs with a different OWNER than expected, and that owner lacks the privilege.
- SET CURRENT SQLID switched to an ID without the authority.
- A role in a trusted context does not hold the privilege.
- A revoke of a high-level authority attempted without SECADM.
How to fix it
- Read the authorization ID and operation in the message.
- Check which ID the job actually used: job USER, bind OWNER, CURRENT SQLID or role.
- Look up that ID's grants in the catalog (SYSIBM.SYSUSERAUTH, SYSDBAUTH, SYSSCHEMAAUTH).
- Ask the security administrator or DBA to grant the needed privilege, or rerun under the correct ID.
- If RACF is in use, compare the ID with any ICH408I messages in the job log.