Why is "VOLUME = #(G), ACCESS = ALL" applied instead of "VOLUME = *ALL*(G), ACCESS = NONE" ?
Since "VOLUME = #(G)" is more specific than "VOLUME = *ALL*(G)", ACCESS = ALL can be selected.
TSS7000I TSTUSR4 LAST-USED 09 OCT 20 08:26 SYSTEM=CTZD FACILITY=TSO
TSS7207E VOLUME #J0542 REQUESTED ACCESS LEVEL (READ ) NOT AUTHORIZED
TSTUSR4 has ALL for #(G)
XA VOLUME = #(G)
ACCESS = ALL
None for *ALL*(G)
XA VOLUME = *ALL*(G)
ACCESS = NONE
Release : 16.0
Component : CA Top Secret for z/OS
VOLUME class *ALL*(G) is processed as one-character(G).
When VOL=#xxxxx is checked, since one-character # matches one-character(G) of *ALL*(G), *ALL*(G) is same definition as #(G).
When you have same definition, ACCESS=NONE is selected, so VOLUME = *ALL*(G) is applied.
You need to have at least two characters, for example, VOLUME = #5(G), ACCESS=ALL, to apply ACCESS=ALL to VOLUME #J0542.