Controle o acesso aos registros
Objetivos de aprendizagem
- Listar as quatro maneiras de controlar o acesso aos registros.
- Descrever situações nas quais se usa cada um dos quatro controles de segurança ao nível do registro.
- Explicar como os diferentes controles de registro interagem entre si.
- Definir padrões de compartilhamento para toda a organização para controlar o acesso aos registros.
Segurança em nível de registro
- Seus usuários devem ter acesso livre a todos os registros ou somente a um subconjunto?
- Se a resposta for subconjunto, quais regras devem determinar se o usuário pode acessá-lo?
Para nosso aplicativo de exemplo, o Recruiter, digamos que você criaria um novo perfil chamado Recrutador para dar as permissões em nível de objeto necessárias para os recrutadores. Você restringe a capacidade de excluir objetos relacionados ao recrutamento; assim, os recrutadores nunca poderão excluir esses objetos. Porém, conceder permissão a recrutadores para criar, ler ou editar objetos de recrutamento não significa necessariamente que eles possam ler ou editar todos os registros no objeto de recrutamento. Isso ocorre por conta de dois conceitos importantes:
- As permissões em um registro são sempre avaliadas de acordo com a combinação das permissões no nível do objeto, no nível do campo e no nível do registro.
- Quando há conflitos entre as permissões no nível do registro e as permissões no nível do objeto, as permissões mais restritivas são aplicadas.
- Os Padrões para toda a organização especificam o nível padrão de acesso que os usuários têm aos registros uns dos outros.
- As hierarquias de papéis garantem que os gerentes têm acesso aos mesmos registros que seus subordinados. Cada papel na hierarquia representa um nível de acesso a dados de que um usuário ou grupo de usuários precisa.
- As regras de compartilhamento são exceções automáticas aos padrões para toda a organização para determinados grupos de usuários, a fim de dar a eles acesso aos registros que eles não têm ou que normalmente não poderiam ver.
- O compartilhamento manual permite que os proprietários do registro concedam permissões de leitura e edição a usuários que não possuam acesso ao registro de outra forma.
- As permissões básicas de um usuário em qualquer objeto são determinadas por seu perfil.
- Se o usuário tiver quaisquer conjuntos de permissões atribuídos, eles também definirão as permissões básicas juntamente com o perfil.
- O acesso a registros por um usuário que não seja seu proprietário é definido primeiramente pelos padrões para toda a organização.
- Se os padrões para toda a organização forem inferiores a Leitura/Gravação pública, você pode reabrir o acesso a certos papéis usando a hierarquia de papéis.
- Você pode usar regras de compartilhamento para expandir o acesso a grupos de usuários adicionais.
- Cada proprietário do registro pode compartilhar manualmente registros individuais com outros usuários usando o botão Compartilhar no registro.
Você já viu como configurar o acesso em nível de objeto e em nível de campo usando perfis e conjuntos de permissões. Agora, vamos examinar em detalhe os diversos controles de segurança no nível do registro.
Compartilhamento para toda a organização
- Quem é o usuário com mais restrições deste objeto?
- Existirá uma instância deste objeto que este usuário não deverá ter permissão para visualizar?
- Existirá uma instância deste objeto que este usuário não deverá ter permissão para editar?
Com base em suas respostas, você pode definir o modelo de compartilhamento desse objeto para uma dessas configurações.
ParticularSomente o proprietário do registro e os usuários acima deste nível na hierarquia de papéis podem ver, editar e gerar relatório desses registros.
Somente leitura pública
Todos os usuários podem visualizar e gerar relatórios sobre registros, mas somente o proprietário e os usuários acima deste nível na hierarquia de papéis podem editá-los.
Leitura/gravação pública
Todos os usuários podem ver, editar e gerar relatório de todos os registros.
Controlado pelo pai
Um usuário pode visualizar, editar ou excluir um registro se ele puder realizar a mesma ação no objeto ao qual ele pertence.
Quando a configuração de compartilhamento para toda a organização para um objeto é Particular ou Somente leitura pública, um administrador pode conceder aos usuários acesso adicional a registros configurando uma hierarquia de papéis ou definindo regras de compartilhamento. As regras de compartilhamento só podem ser usadas para conceder acesso adicional. Elas não podem ser usadas para restringir o acesso aos registros além do que foi originalmente especificado com os padrões de compartilhamento para toda a organização.
Como um exemplo, vamos avançar e responder à lista de perguntas acima para o objeto Posição no aplicativo Recruiting.
Quem é o usuário mais restrito deste objeto?Um membro do perfil Funcionário padrão. Eles podem somente visualizar uma posição.
Existirá uma instância deste objeto que este usuário não deverá ter permissão para visualizar?
Não. Embora os valores dos campos de salário mínimo e máximo estejam ocultos para os funcionários padrão, eles ainda têm permissão para visualizar todos os registros de posição.
Existirá uma instância deste objeto que este usuário não deverá ter permissão para editar?
Sim. Os funcionários padrão não têm permissão para editar registros de posição.
Como respondemos “Sim” à pergunta número 3, o modelo de compartilhamento do objeto Posição deve ser configurado como Somente leitura pública. Ao repetir o mesmo exercício com os outros objetos de recrutamento, você pode facilmente descobrir as configurações padrão para toda a organização adequadas para eles. O perfil Funcionário padrão é o usuário mais restrito para cada objeto e existirão registros de candidato, formulário de emprego e revisão que determinados funcionários não conseguirão visualizar. Consequentemente, o modelo de compartilhamento para os objetos Candidato, Formulário de emprego e Revisão deve ser configurado como Particular.
Definir padrões de compartilhamento para toda a organização
- Em Configuração, na caixa Busca rápida, insira Configurações de compartilhamento e selecione Configurações de compartilhamento.
- Clique em Editar na área Padrões para toda a organização. Observe que alguns objetos padrão usam diferentes opções padrão para toda a organização. As opções padrão personalizadas para toda a organização de objetos incluem Somente leitura privada/pública ou Leitura/Gravação pública.
- Para cada objeto, selecione o acesso interno padrão e o acesso externo padrão.
- Para desativar o acesso automático usando suas hierarquias, desmarque Conceder acesso usando hierarquias para qualquer objeto personalizado que não tenha o acesso padrão Controlado pelo pai.
Mesmo que a opção Conceder acesso usando hierarquias esteja desmarcada, alguns usuários, como aqueles com as permissões de objeto “Exibir tudo” e “Modificar tudo” e as permissões do sistema “Exibir todos os dados” e “Modificar todos os dados”, ainda poderão acessar os registros que eles não possuem.
Quero saber mais...
O compartilhamento gerenciado do Apex permite que os desenvolvedores compartilhem programaticamente registros associados a objetos personalizados. Quando você usa o compartilhamento gerenciado do Apex para um objeto personalizado, somente os usuários com a permissão “Modificar todos os dados” poderão adicionar ou alterar o compartilhamento nos registros desse objeto personalizado, e o acesso de compartilhamento será mantido mesmo se o proprietário do registro mudar. Para obter mais informações, consulte Compartilhamento do Apex.