Edição de privilégios de acesso a registro
Conjuntos de privilégios podem limitar o acesso a registros em um arquivo. Para um arquivo, você pode definir:
 •
Privilégios para todas as tabelas: você pode limitar se um conjunto de privilégios permite criar, editar e excluir registros em todas as tabelas de um arquivo.
 •
Privilégios personalizados para tabelas individuais: você pode definir limites de acesso individual a registro para cada tabela. Por exemplo, o conjunto de privilégios pode limitar a capacidade de:
 •
 •
Exibir, editar e excluir certos registros de cada tabela. Os privilégios são limitados por meio de cálculo que retorna um resultado booleano para cada registro. Quando o cálculo é avaliado como Verdadeiro, o acesso é permitido para essa atividade específica (como exibição do registro). Quando o cálculo é avaliado como Falso, o acesso a essa atividade é proibido.
 •
Acessar ou modificar determinados campos dentro de cada tabela. Quando o acesso a um ou mais campos for restrito em uma tabela que estava visível, o usuário verá <Sem acesso> em vez dos dados do campo.
É possível apenas registrar privilégios de acesso para tabelas definidas no arquivo atual. Se o arquivo contiver relacionamentos com tabelas em outros arquivos que você deseja proteger, será preciso criar contas e conjuntos de privilégios nos outros arquivos para proteger essas tabelas. Consulte Sobre a proteção de bancos de dados.
Para editar privilégios de acesso a registro para todas as tabelas:
1.
Consulte Criação e edição de conjuntos de privilégios.
2.
Na área Design e acesso a dados, para Registros, escolha uma opção.
 
3.
Clique em OK e depois em OK novamente na caixa de diálogo Gerenciar segurança.
Ou, para atribuir o conjunto de privilégios a uma ou mais contas, consulte Criação e edição de contas.
Para editar privilégios de acesso a registro para tabelas individuais:
1.
Consulte Criação e edição de conjuntos de privilégios.
2.
Na área Design e acesso a dados, para Registros, escolha Privilégios personalizados.
3.
 •
 •
 •
 •
4.
 
Limitado (disponível quando apenas uma única tabela está selecionada)
Nota  Evite a criação de combinações inconsistentes de privilégios de exibição, edição criação e exclusão. Por exemplo, a probabilidade é alta de que você não deseja permitir que os usuários excluam registros que não podem ver.
5.
6.
7.
Na caixa de diálogo Privilégios do campo personalizado, selecione cada campo do qual deseja limitar o acesso (ou selecione Qualquer campo novo para definir privilégios personalizados para qualquer campo criado depois). Em seguida, escolha uma das seguintes opções:
 
Nota  Quando o acesso a um ou mais campos for proibido em uma tabela que estava visível, o usuário verá <Sem acesso> em vez dos dados do campo.
8.
Clique em OK duas vezes.
A caixa de diálogo Editar conjunto de privilégios é exibida.
9.
Clique em OK e depois em OK novamente na caixa de diálogo Gerenciar segurança.
Ou, para atribuir o conjunto de privilégios a uma ou mais contas, consulte Criação e edição de contas.
Notas
 •
 •
 •
 •
 
Pesquisas e novas pesquisas
 •
No mínimo, os campos de correspondência usados no relacionamento devem ter privilégios de exibição. Além disso, nenhuma pesquisa será feita para os registros que não estiverem visíveis nas tabelas de origem e de destino porque uma correspondência não pode ocorrer sob essas circunstâncias. Isso inclui o primeiro registro correspondente relacionado, bem como todos os registros usados para copiar o próximo valor superior ou inferior.
O conjunto encontrado é sempre filtrado para exibir somente os registros com privilégios de acesso, no mínimo. Os resultados da função Get(FoundCount) serão afetados também se o acesso for limitado.
Inserção de uma fórmula para limitar o acesso por registro
Para permitir ou proibir os privilégios de exibição, edição e exclusão do registro para certos registros em uma tabela, você precisará especificar um cálculo booleano que determina se o privilégio é permitido. Para cada registro no banco de dados, o acesso é permitido quando o cálculo é avaliado como Verdadeiro ou como um resultado diferente de zero, e o acesso é proibido quando o cálculo é avaliado como Falso ou zero. Eis dois exemplos:
 •
Para limitar o acesso apenas aos registros criados pela conta atual: Defina um campo de texto com o nome Registro_Criado_Por e defina a opção de inserção automática para que o campo insira automaticamente o nome da conta quando o registro for criado. (Consulte Definição da entrada de dados automática.) Em seguida, use o seguinte cálculo ao definir privilégios de acesso a registro personalizados:
Registro_Criado_Por = Get(AccountName)
O usuário terá apenas acesso de Busca a registros que o cálculo acima avalia como Verdadeiro.
 •
Para limitar o acesso apenas aos registros criados na data atual: Defina um campo de data com o nome Data de_criação do_registro e defina a opção de inserção automática para que o campo insira automaticamente a data de criação quando o registro for criado. (Consulte Definição da entrada de dados automática.) Em seguida, use o seguinte cálculo ao definir privilégios de acesso a registro personalizados:
Data de_criação do_registro = Get(CurrentDate)
O usuário terá apenas acesso de Busca a registros que o cálculo acima avalia como Verdadeiro.
Dica  Se especificar um cálculo para proibir a exibição de certos registros em uma tabela, na maioria dos casos, você deverá usar o mesmo cálculo para proibir a edição e a exclusão dos mesmos tipos de registros. Caso contrário, poderá inadvertidamente permitir que os usuários editem ou excluam registros que não podem visualizar.
Notas
 •
Além disso, se o campo for compartilhado e o cálculo booleano que determina os privilégios de acesso a registro tiver um ou mais campos globais, você poderá melhorar o desempenho de rede movendo alguns campos globais para uma tabela separada. Consulte a seção Notas em Definição de campos globais (campos com armazenamento global).
 •