Al crear un usuario y definir que clase de usuario es (USRCLS), de alguna forma ya estamos limitando que mandatos podrá usar y cuales no. Con las autorizaciones especiales (SPCAUT) del perfil de usuario, podemos limitar aun más el acceso a los mandados críticos.
Pero ademas podemos auditar la utilización de un mandato, sin limitar su uso, por ejemplo el mandato CLRPFM.
¿Como podemos hacerlo? Simplemente cambiando el valor de auditoria del objeto QSYS/CLRPFM de tipo *CMD.
Para ver el valor actual de auditoria de un objeto, hemos de utilizar el mandato:
DSPOBJD OBJ(QSYS/CLRPFM) OBJTYPE(*CMD) DETAIL(*FULL)
Pulsando una vez la AvPág, podremos observar que tiene el valor "Object auditing value" igual a *NONE. Para cambiarlo y empezar a auditar su uso, ejecutaremos el mandato:
CHGOBJAUD OBJ(QSYS/CLRPFM) OBJTYPE(*CMD) OBJAUD(*ALL)
Esto hará que cada vez que se utilice el mandato CLRPFM, se grabara una entrada en el diario de auditoria del sistema (QSYS/QAUDJRN).
Posteriormente podemos obtener un listado del uso del mandato ejecutando:
CPYAUDJRNE ENTTYP(CD) OUTFILE(MYLIB/CMD_USE)
Esto volcara las entradas de uso de cualquier objeto, que se este auditando, a un fichero. Después con SQL podremos seleccionarlas:
SELECT CDTSTP, CDJOB, CDUSER, CDNBR, CDPGMLIB, CDPGM, CDCMDS FROM
MYLIB/CMD_USECD WHERE CDCMDS LIKE '%CLRPFM%'
Nota: El mandato CPYAUDJRNE añade los caracteres CD al nombre del fichero de salida.
Ahora ya podemos ver cuando, quien y desde que programa se ha utilizado el mandato CLRPFM. Si el programa es el QCMD, nos indicara que se ha ejecutado desde la linea de mandatos.
CHGOBJAUD OBJ(MYLIB/MYOBJECT) OBJTYPE(*CMD) OBJAUD(*ALL)
También el rendimiento del sistema puede verse afectado, ligeramente, si auditamos muchos objetos muy usados.
CHGOBJAUD OBJ(MYLIB/MYOBJECT) OBJTYPE(*CMD) OBJAUD(*CHANGE)
Mas información: