Resolução de problemasAcesso a registosAdministração de Salesforce

Um utilizador vê um registo que não devia — como descobrir porquê

Um método passo a passo para diagnosticar por que razão um utilizador do Salesforce vê um registo que não devia, entre OWD, hierarquia, regras e partilhas.

AgentForceAccess 4 min de leitura
Vários feixes de luz convergentes da silhueta de um utilizador para um único registo, com uma lupa

Porque é que esta pessoa consegue ver aquele registo? é a pergunta de acesso mais comum no Salesforce — e a mais difícil de responder a olho, porque a plataforma nunca decide a visibilidade num único sítio. Ela concede a união de vários mecanismos. Este guia dá-lhe uma ordem repetível para encontrar o que abriu o acesso.

Primeiro, o modelo mental

A partilha no Salesforce é aditiva e vence a mais permissiva. Não está à procura de uma regra que permite o acesso e de uma regra que o bloqueia. Está à procura de uma única concessão qualquer, porque uma basta. (Para conhecer todas as camadas, veja quem pode ver um registo no Salesforce.)

Se um único mecanismo conceder acesso, o utilizador tem-no. A sua tarefa é descobrir qual.

Passo 1 — Ler o botão Sharing

No registo, clique em Sharing (disponível para objetos cujo org-wide default não seja totalmente público). A lista mostra os utilizadores com acesso e uma coluna Reason — Owner, Role Hierarchy, Sharing Rule, Manual Share, Team, e por aí adiante. Na maioria dos casos, isto identifica o culpado de imediato.

Se o utilizador nem sequer aparece na lista mas continua a ver o registo, suspeite de um bypass ao nível do perfil — avance para o Passo 2.

Passo 2 — Excluir bypasses ao nível das permissões

Estes ignoram completamente o modelo de partilha:

  • View All Data / Modify All Data (permissões de sistema, por exemplo no perfil System Administrator).
  • View All / Modify All ao nível do objeto, nesse objeto específico.

Se o utilizador tiver alguma destas via perfil ou conjunto de permissões, as alterações à partilha não esconderão o registo. Tem de remover a permissão. Verifique o perfil dele e todos os conjuntos de permissões atribuídos.

Passo 3 — Percorrer as camadas de partilha, de cima para baixo

Se for realmente uma concessão de partilha, identifique qual a camada:

O org-wide default é demasiado aberto

Se o OWD do objeto for Public Read Only ou Public Read/Write, toda a gente com acesso ao objeto vê todos os registos. A correção é estrutural — restrinja o org-wide default e volte a conceder o acesso de forma deliberada.

A hierarquia de funções a propagar o acesso para cima

Se o utilizador estiver acima do dono do registo na hierarquia de funções e a opção “Grant Access Using Hierarchies” estiver ativa, ele herda automaticamente o acesso do dono. Esta é a surpresa mais comum.

Uma regra de partilha demasiado abrangente

Uma regra por critérios como Region = EMEA → partilhar com a função X pode incluir muito mais pessoas do que o pretendido, sobretudo após alterações de dados ou de funções. Reveja as regras direcionadas à função, aos grupos públicos ou ao território do utilizador.

Uma partilha manual ou implícita

  • Partilha manual: alguém usou o botão Share do registo.
  • Partilha implícita: o acesso a uma Account principal concede acesso limitado de leitura aos Cases e Contacts subordinados. As pessoas esquecem-se constantemente desta — e é sempre só de leitura.
  • Apex managed sharing: código personalizado criou a partilha; o botão Sharing mostra-a, mas a origem está no código.

Equipas e territórios

A pertença a uma team de Account/Opportunity/Case, ou um território correspondente no Enterprise Territory Management, concedem acesso de forma independente.

Passo 4 — Confirmar que não é atraso de recálculo

Se o acesso parecer inconsistente, pode estar a observar o recálculo da partilha a terminar após uma alteração recente de propriedade, função ou regra. Deixe-o concluir antes de declarar que há um erro.

Uma checklist de diagnóstico

  1. Botão Sharing → leia a Reason para esse utilizador.
  2. Perfil + conjuntos de permissões → algum View All / Modify All?
  3. OWD demasiado aberto para este objeto?
  4. Utilizador acima do dono na hierarquia de funções?
  5. Alguma regra de partilha (sobretudo por critérios) que o inclua?
  6. Partilha manual, implícita ou Apex?
  7. Membro de uma team ou território correspondente?
  8. Alteração recente → aguarde o recálculo.

O primeiro “sim” é a sua resposta — e pode haver mais do que um caminho a conceder o mesmo acesso. Para o problema oposto — um utilizador que não consegue ver um registo que devia — veja a checklist de diagnóstico para acesso em falta.

Fazer isto em segundos em vez de numa tarde inteira

Percorrer oito camadas por cada par utilizador-registo, entre perfis, conjuntos de permissões e seis mecanismos de partilha, é exatamente o trabalho manual e maçador que esconde a exposição real. O AgentForceAccess faz isso por si: pergunte em linguagem corrente por que razão um utilizador vê um registo, e ele percorre todas as camadas e cita a concessão exata — para que vá direto à correção.

Perguntas frequentes

Qual é a primeira verificação mais rápida?

Abra o registo, clique no botão Sharing e leia a coluna "Reason" para esse utilizador. Para a maioria dos objetos padrão, ela indica o mecanismo que concede o acesso — Owner, Role Hierarchy, Sharing Rule, Manual, e por aí adiante. Confirme também que o utilizador não tem simplesmente "View All Data" ou "View All" ao nível do objeto.

O botão Sharing diz "Role Hierarchy" — e agora?

Alguém que está acima do utilizador na hierarquia de funções é dono do registo (ou tem-no partilhado) e a opção "Grant Access Using Hierarchies" está ativa para o objeto. Para remover esse acesso, teria de alterar a hierarquia, a propriedade do registo ou desativar o acesso por hierarquia em objetos personalizados — nada de fazer de ânimo leve.

Poderá a causa ser uma permissão de perfil, e não a partilha?

Sim. "View All Data"/"Modify All Data" e "View All"/"Modify All" ao nível do objeto ignoram completamente o modelo de partilha. Se o utilizador tiver alguma destas, nenhuma alteração à partilha esconderá o registo — em vez disso, terá de remover a permissão.

Porque é que o acesso aparece e desaparece de forma intermitente?

Recálculo da partilha. Após alterações de propriedade, mudanças de função ou edições de regras, o Salesforce reprocessa as partilhas de forma assíncrona. Durante esse período, o acesso pode parecer inconsistente. Deixe o recálculo terminar antes de concluir que existe um erro de configuração.

Veja na sua própria org

O AgentForceAccess explica, em linguagem clara, porque é que qualquer utilizador vê qualquer registo ou ficheiro — em todos os mecanismos de partilha do Salesforce.

Pedir acesso antecipado