📌 Explicação

O parâmetro USER= define qual usuário está submetendo o job no ambiente JES (Job Entry Subsystem). Ele é exigido quando o job roda fora do TSO ou em ambientes onde o controle de segurança exige autenticação explícita.

🧰 Usos mais comuns

  • Submeter jobs automaticamente via scripts/batch (sem TSO logado).

  • Executar jobs em nome de outro usuário (com permissão, claro).

  • Ambientes protegidos por RACF, Top Secret ou ACF2.

🧾 Sintaxe

//NOMEJOB JOB (conta),‘descrição’,
//             USER=IDUSUARIO,PASSWORD=SENHA
  • USER= → o ID que tem permissão pra rodar o job.

  • PASSWORD= → senha associada ao ID (opcional, mas normalmente exigida).

🛑 Cuidado: colocar senha no JCL pode ser um risco de segurança, especialmente em ambientes compartilhados.

💻 Exemplo prático

//JOBPRIV JOB (1234),'ACESSO EXTERNO',
//             USER=OPER01,PASSWORD=SEGREDO
//*
//ETAPA EXEC PGM=IEFBR14

Esse job será executado com as permissões do usuário OPER01. Ideal em rotinas automatizadas, fora do TSO.

⚙️ Regras

  • USER= só é obrigatório se o job não estiver sendo submetido por um usuário autenticado no TSO.

  • Normalmente usado com PASSWORD=, exceto quando a segurança é desabilitada (não recomendado).

  • Se a senha estiver errada, o job nem começa — erro de autorização.

💡 Dicas

  • Nunca use USER= com PASSWORD= em JCL salvo em bibliotecas abertas.

  • Se precisar rodar como outro usuário, consulte o suporte/suporte RACF.

  • Prefira usar NOTIFY=&SYSUID se estiver logado no TSO — evita problemas de segurança.

✅ Conclusão

O USER= é o crachá do job. Sem ele (em alguns ambientes), o sistema nem te deixa entrar. Mas usa com cuidado: envolve segurança, e qualquer vacilo pode dar acesso indevido ou travar a execução. Só usa quando necessário e sempre com atenção redobrada.