Entenda de vez a diferença entre table.--none-- e table.* no ServiceNow

07 de Apr, 2026
Entenda de vez a diferença entre table.--none-- e table.* no ServiceNow

Se você já trabalhou com ACLs no ServiceNow, provavelmente já se deparou com duas opções que parecem muito semelhantes:

  • table.--none--
  • table.*

E, assim como muita gente, deve ter se perguntado:

“Isso não é a mesma coisa?”

A resposta é simples: não, não é — e entender essa diferença é fundamental para evitar problemas de segurança e acesso no sistema.


Por que essa dúvida acontece?

Visualmente, as duas opções parecem indicar algo “genérico” na tabela. Porém, na prática, elas atuam em níveis completamente diferentes dentro das ACLs.

Como o próprio material destaca:

Apesar de parecer… não são iguais, não fazem a mesma coisa e não têm o mesmo impacto


🔐 table.--none--: controle no nível do registro

Quando você utiliza table.--none--, está definindo uma ACL que atua no nível do registro (linha).

O que isso significa?

  • Controla o acesso ao registro inteiro
  • Se negar acesso → o usuário nem consegue visualizar o registro
  • É a camada mais crítica de segurança

📌 Exemplo prático:

Imagine uma tabela de chamados (incident):

  • Se o usuário não passar na ACL incident.--none--
    👉 Ele não verá o chamado na lista
    👉 Não conseguirá acessar o formulário

Isso confirma o ponto do material:

“ACL no nível do registro controla acesso à linha inteira”


👁️ table.*: controle no nível de campo

Já o table.* funciona de forma diferente: ele atua no nível de campo (field-level).

O que isso significa?

  • Aplica a regra para todos os campos da tabela
  • O usuário pode acessar o registro
  • Mas pode ter campos ocultos ou restritos

📌 Exemplo prático:

O usuário abre um chamado normalmente, porém:

  • Não consegue ver o campo “salário”
  • Ou não consegue editar determinados campos

Isso acontece porque:

“Usuário acessa o registro, mas os campos podem ser filtrados”


🎯 A diferença-chave (resumo direto)

Aqui está o ponto mais importante que você precisa guardar:

Tipo de ACL O que controla Impacto
--none-- Acesso ao registro Bloqueia completamente
* Visibilidade dos campos Restringe parcialmente

Como reforçado no material:

--none-- → controla acesso ao registro
* → controla visibilidade dos campos


⚠️ Erros comuns que você deve evitar

Muitos desenvolvedores cometem erros clássicos ao não entender essa diferença:

❌ Usar table.* achando que está protegendo o registro

Resultado: o usuário ainda acessa dados sensíveis

❌ Ignorar --none--

Resultado: falha crítica de segurança (acesso indevido)

❌ Misturar regras sem estratégia

Resultado: comportamento inconsistente e difícil de debugar


🧠 Boas práticas recomendadas

Se você quer trabalhar de forma profissional com ServiceNow:

✔ Sempre comece pela ACL --none-- (base de segurança)
✔ Use * para refinar visibilidade de campos
✔ Pense em camadas de segurança (defense in depth)
✔ Teste com diferentes perfis de usuário
✔ Evite depender apenas de client-side (UI Policy / Client Script)


🚀 Conclusão

Entender a diferença entre table.--none-- e table.* não é apenas um detalhe técnico — é um conceito essencial de segurança e arquitetura no ServiceNow.

Enquanto um controla se o usuário pode acessar o registro, o outro define o que ele pode ver dentro dele.

Dominar isso te coloca em outro nível como desenvolvedor na plataforma.

Voltar ao Blog
Compartilhar: