Pragiva — Tecnologia na prática

Privilégios no Protheus: a diferença entre não permitido e negado

Privilégios no Protheus: como montar um privilégio de só pesquisar e visualizar, vinculá-lo a usuário ou grupo, e por que negado vence permitido.

Protheus Tutorial 6 min de leitura

Assista o vídeo

Nesta página7 seções

Antes de começar

  • Acesso ao Configurador com permissão para a rotina de Privilégios e para o cadastro de usuários.

Um privilégio é uma regra com nome, criada uma vez no Configurador e ligada a quantos usuários ou grupos você quiser. A regra diz, rotina por rotina e item de menu por item de menu, o que está permitido, não permitido ou negado.

A dúvida que traz a maioria das pessoas até aqui é a diferença entre os dois bloqueios:

  • Negado bloqueia sempre. Se a rotina aparece como negada em qualquer privilégio do usuário, isso se sobrepõe a qualquer outro privilégio que a deixe como permitida ou não permitida.
  • Não permitido só bloqueia se nenhum outro privilégio do usuário disser permitido para aquela rotina. Se algum disser, a rotina fica liberada.

A documentação da TOTVS resume a ordem assim: Negado > Permitido > Não Permitido. O mesmo documento traz um exemplo com três configurações para o mesmo usuário:

RotinaConfiguração AConfiguração BConfiguração CAcessa?
MATA030 (Clientes)Não permitidoPermitidoNão permitidoSim
MATA020 (Fornecedores)Não permitidoNão permitidoNão permitidoNão
MATA040 (Vendedores)PermitidoPermitidoNegadoNão

A diferença só aparece quando o usuário tem mais de um privilégio, seja direto, seja pelos grupos, e isso é comum. O estado Negado só existe nos privilégios. As outras formas de restringir acesso (menu e acessos de menu) não têm esse estado.

Neste tutorial vamos criar a regra Consulta de TES. Ela deixa o usuário só pesquisar e visualizar o cadastro de Tipos de Entrada e Saída (MATA080). Depois, vamos ligá-la à usuária fictícia mariana.costa.

Descobrir o nome da rotina

O privilégio pede o nome do objeto da rotina, e não o texto do menu. Na maioria das rotinas, basta abrir a tela e pressionar SHIFT+F6 para ver esse nome. A documentação avisa que algumas rotinas não mostram o nome real nesse atalho. Um exemplo é o Spool, do menu Miscelânea, cujo objeto é OURSPOOL. Nesses casos, a orientação da TOTVS é consultar o suporte do módulo.

Para o cadastro de TES, o nome é MATA080.

Criar o privilégio

  1. No Configurador, acesse Usuário > Senhas > Privilégios (rotina CFGA530) e clique em Incluir.
  2. Preencha o campo Regra com Consulta de TES e o campo Comentário com o efeito da regra, por exemplo “Somente pesquisar e visualizar o cadastro de TES”.
  3. Clique duas vezes abaixo da coluna Transação/Rotina e digite MATA080. Para incluir outras rotinas, tecle seta para baixo.
  4. Na seção Regras por transação/rotina, na coluna Acesso, deixe a rotina como Permitido. É o que libera a entrada no cadastro.
  5. Clique sobre a rotina. Os itens de menu dela aparecem na seção Funcionalidades das transações/rotinas, e cada item tem a própria coluna Acesso.
  6. Marque Pesquisar e Visualizar como Permitido. Marque Incluir, Alterar, Excluir e qualquer outro item de menu que a rotina mostrar como Negado.
  7. Clique em Confirmar.

Atalho: montar a partir de um menu

Se a regra envolve muitas rotinas, dá para carregar todas as rotinas de um menu de uma vez. Na inclusão, clique em Outras Ações (Ações Relacionadas) e selecione Menu. Clique em Avançar, localize na listagem o menu que quer usar e clique em Finalizar. As rotinas desse menu entram na regra, e você ajusta o acesso de cada uma.

Vincular a regra ao usuário ou ao grupo

O privilégio sozinho não faz nada. Ele só entra em vigor depois de associado a um usuário ou grupo.

  1. Acesse Usuário > Senhas > Usuários (ou Grupos, para um grupo inteiro).
  2. Clique em mariana.costa e depois em Outras Ações (Ações Relacionadas).
  3. Clique em Privilégios.
  4. Clique duas vezes abaixo da coluna Regra e clique na lupa.
  5. Selecione Consulta de TES e clique em OK.
  6. Se o privilégio deve valer só numa empresa ou filial, digite o código nas colunas Grupo de Empresas e Filial do Sistema. Em branco, vale para todas as empresas e filiais a que o usuário tem acesso.
  7. Clique em Confirmar.

Conferir a quem a regra chegou

Na rotina de Privilégios, posicione em Consulta de TES, clique em Alterar e em Outras Ações > Usuários relacionados. A tela lista todos os usuários ligados ao privilégio. A coluna Definição do Privilégio mostra a origem de cada ligação:

ValorSignifica
Usuárioassociado pelo cadastro do usuário
Grupoassociado pelo cadastro do grupo
Ambosassociado pelos dois

Usuários de um grupo com Regra de acesso por grupo igual a Desconsiderar não aparecem nessa lista.

Por que usar negado de propósito

Imagine mariana.costa num grupo do faturamento cujo privilégio libera o cadastro de TES por inteiro. Você vincula a ela a regra Consulta de TES.

  • Se o bloqueio de Incluir na sua regra for Não permitido, o Permitido do grupo vence, e a Mariana continua incluindo TES.
  • Se for Negado, a sua regra vence, e ela só consulta.

Use Negado quando o bloqueio precisa valer seja qual for a combinação de grupos. Use Não permitido quando a regra funciona como um padrão restrito, que outro privilégio pode liberar para quem precisa.

Existe ainda o estado não configurado: a rotina não aparece em nenhuma configuração. A documentação da TOTVS também o trata como uma configuração válida, porque o acesso pode ser decidido pelo Grupo Default. Depois da instalação, o Grupo Default vem desabilitado, e o padrão do Protheus é permitir. Com o Grupo Default habilitado, o que não estiver explicitamente permitido fica bloqueado.

Grupos e administrador

Dois pontos que mudam o resultado sem aparecer no privilégio:

  • Mais de um grupo. Quando o usuário tem mais de um grupo e a regra de acesso por grupo não é Desconsiderar, os privilégios dos grupos sempre se somam. O campo Priorizar = Sim da lista de grupos não é levado em conta para privilégios. Se houver conflito, vale a mesma ordem: Negado > Permitido > Não Permitido. A priorização de grupo existe, mas atua em acessos, empresas, módulos e menus, e não em privilégios (veja Cadastro de usuários no Protheus).
  • Usuário administrador. Se o privilégio vale ou não para quem está no grupo Administradores depende da opção “Habilita privilégio para usuário do grupo administrador”, na Política, aba Outros > Parâmetros (Política de senhas no Protheus).

Recomendação: teste com um usuário comum, como joao.pereira, e não com o seu. Se o seu usuário for administrador, o resultado depende da opção acima e pode ser diferente do que os usuários restringidos vão ver.

Quem tentou entrar onde não podia

A Consulta Auditoria (APCFGR50) registra a tentativa de um usuário de acessar um recurso bloqueado, por exemplo uma rotina bloqueada por privilégio. Ela não registra nada por padrão. Primeiro é preciso ligar, na Política, aba Outros > Regras de Auditoria, a opção Auditar rejeição de acesso a recursos = Sim. A consulta fica em Configurador > Base de Dados > Auditoria > Consulta Auditoria.

Com ela ligada, fica fácil separar “o sistema travou” de “o bloqueio funcionou”. As demais rotinas de log estão em Log de registros.

Referências

  1. TDNtdn.totvs.com

    TDN — Configurar Privilégio para controlar acesso a rotinas
  2. TDNtdn.totvs.com

    TDN — Quais as configurações e os tipos de acessos disponíveis?
  3. TDNtdn.totvs.com

    TDN — Criar um Grupo de Usuários
  4. TDNtdn.totvs.com

    TDN — Política de Segurança
  5. TDNtdn.totvs.com

    TDN — Rotinas de Logs e Auditoria

Continue por aqui