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.
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
- Botão Sharing → leia a Reason para esse utilizador.
- Perfil + conjuntos de permissões → algum View All / Modify All?
- OWD demasiado aberto para este objeto?
- Utilizador acima do dono na hierarquia de funções?
- Alguma regra de partilha (sobretudo por critérios) que o inclua?
- Partilha manual, implícita ou Apex?
- Membro de uma team ou território correspondente?
- 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