Currently I am executing a CICS transaction. I want to verify in the above transaction if the current userid is authorized to execute some other transaction. I do not want to maintain a different security for my application so I am making use of different transaction definitions to enforce security. In short how do I access TCT table entries in a program?
I suggest you use the EXEC CICS Query Security command described in the CICS Application Programming Reference Manual. This command is used to determine if the user running the current transaction is authorised to use a particular resource. In your case the command will look something like:-
EXEC CICS QUERY SECURITY RESTYPE('TRANSATTACH') RESID('XXXX') READ (cvda)
where XXXX is the transaction code of the other transaction. The RESTYPE of TRANSATTACH refers to the authority to attach a transaction, for example by entering the transaction code at a terminal. The RESTYPE of TRANSACTION is reserved for use as the authority to EXEC CICS START a transaction. On completion of the command the cvda is set to READABLE if the user is authorised, NOTREADABLE if not authorised.
I recommend you read the chapter in the "CICS RACF Security Guide" on security checking using the QUERY SECURITY command. There is absolutely no need to access the TCT!
Dig Deeper on IBM system z and mainframe systems
Related Q&A from Robert Crawford
For better mainframe capacity planning, how do I convert CPU hours to MIPS? And is there a way to calculate the relationship between MIPS and MSUs? Continue Reading
I have two years of experience in mainframe technology, currently working as a mainframe developer. I want to change to Java technology. Continue Reading
I want to replicate DB2 from the mainframe to an AIX box since it's cheaper and the copy can be used for testing. Is this possible? Continue Reading