Topic ACLs

Topic ACLs are the concrete access control lists that IBM MQ stores for topic strings and topic objects—who may publish, subscribe, define, alter, display, or delete in each branch of the topic tree. While topic authorization is the concept, ACLs are what auditors export: dspmqaut output, DISPLAY AUTHREC reports, and RACF profile listings on z/OS. Beginners confuse ACL with “only queues”—pub/sub failures at 2035 are often missing or overly broad topic ACL entries, not missing channel definitions. This tutorial explains how topic ACLs are represented, how they differ from queue ACLs, setmqaut and AUTHREC patterns, inheritance along hierarchy, negative testing with non-admin principals, exporting ACLs for compliance, revoking access during incidents, and pairing ACL reviews with DISPLAY SUB and TOPIC catalogs.

ACL Structure: Profile, Type, Principal, Authorities

Each ACL entry binds four ideas: the queue manager, the object profile name (topic string or object name), the object type topic, the security principal (user or group), and a bit mask of authorities. On distributed MQ, setmqaut creates these entries in the OAM repository. The effective user at runtime is usually MCAUSER on SVRCONN, the bindings OS user, or a mapped certificate identity—not the person who ran setmqaut from an admin laptop unless they connect as that same ID.

Topic ACL authority bits (distributed)
AuthorityMeaningWho typically gets it
pubPublish messages to matching topicProducer service IDs
subCreate or use subscriptionsConsumer service IDs
crtDEFINE new topic objectsMQ administrators
chgALTER topic definitionsMQ administrators
dspDISPLAY topic and inquireOps read-only
dltDELETE topic objectsMQ admins only

Managing ACLs with setmqaut

shell
1
2
3
4
5
6
setmqaut -m QM1 -t topic -n 'prod/retail/order/#' -p MQ.ORDPROD +pub setmqaut -m QM1 -t topic -n 'prod/retail/order/#' -p MQ.ANALYT +sub setmqaut -m QM1 -t topic -n 'prod/retail/order/#' -p MQ.ADMIN +crt +chg +dsp +dlt dspmqaut -m QM1 -t topic -n 'prod/retail/order/#' -p MQ.ORDPROD dspmqaut -m QM1 -t topic -n 'prod/retail/order/#' -p MQ.ANALYT * Revoke: setmqaut ... -remove +pub

Script ACL changes through Git like MQSC. After deploy, verify with dspmqaut using application principals, not your admin ID. Group principals (-p MQ.GROUP.NAME) simplify LDAP role mapping—one ACL row per role instead of per developer.

Topic ACL vs Queue ACL for Pub/Sub

Minimum consumer ACL set: +sub on topic pattern, +get and +dsp on DEST queue, and queue manager delivery context must +put to DEST (often implicit—verify on z/OS). Minimum producer set: +pub on published branch only—no SUB, no GET on unrelated queues. Topic ACL without queue GET produces subscriptions that fill DEST while the app cannot read—operators with admin GET see depth; application logs 2035.

ACL Inheritance and Wildcard Profiles

Granting ACL on prod/finance/# allows authorities on all strings under that prefix per IBM tree matching rules. Finer grants on prod/finance/payment/# override or add to parent depending on evaluation order documented for your release—test with dspmqaut on leaf strings after parent grant. Never copy prod/# ACL to lab without changing prefix to test/#.

z/OS AUTHREC (Overview)

On z/OS, ALTER AUTHREC OBJTYPE(TOPIC) PROFILE('profile') PRINCIPAL('user') AUTHADD(PUB SUB) maps RACF profiles to MQ. Profile naming conventions differ from distributed slash strings—coordinate with security administrators. Export RACF reports alongside MQ DISPLAY for audits.

ACL Auditing and Compliance

  • Quarterly export of all topic profiles with pub and sub for production queue managers.
  • Compare ACL export to enterprise topic catalog owner list.
  • Flag principals with both pub and sub on wide prod/# patterns.
  • Review DISPLAY SUB DESTQL against ACL-approved consumer queues.
  • After reorganizations, remove ACLs for decommissioned service IDs promptly.

Explainer: Guest List on Each Floor

The topic ACL is the guest list on a floor of a building. It states who may speak (pub) and who may sign up for copies (sub). A separate list guards each mailbox (queue ACL) for who may open it (+get).

Explain Like I'm Five: Topic ACLs

A topic ACL is a list of names allowed to talk about dinosaurs and to ask for dinosaur newsletters. If your name is not on the list, the computer says no—even if you can walk in the building.

Practice Exercises

Exercise 1

Write setmqaut and dspmqaut pair for producer and consumer on one branch.

Exercise 2

List topic ACL and queue ACL needed for durable consumer.

Exercise 3

Why audit both pub and sub on prod/# quarterly?

Frequently Asked Questions

Frequently Asked Questions

Test Your Knowledge

Test Your Knowledge

1. Topic ACLs are enforced by:

  • OAM
  • FTP
  • JES
  • COBOL compiler

2. Pub/sub needs topic ACL plus:

  • DEST queue ACL
  • Only channel
  • Only listener
  • Only CCDT

3. dspmqaut shows:

  • Effective authorities for principal
  • Channel cipher only
  • Page set size
  • JCL class

4. Granting +pub on prod/# is:

  • Very broad—high risk
  • Required for all apps
  • Same as +get
  • Channel only
Published
Read time17 min
AuthorMainframeMaster
Verified: IBM MQ 9.3 documentation