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, criar ou excluir todos os registros de cada tabela.
•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 entradas de acesso de conta e conjuntos de privilégios nos outros arquivos para proteger essas tabelas. Consulte Sobre contas, conjuntos de privilégios e privilégios estendidos.
1. Comece editando um conjunto de privilégios novo ou existente na caixa de diálogo Editar conjunto de privilégios.
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.
Para editar o conjunto de privilégios para | Escolha |
Permitir a criação, a edição e a exclusão de registros em todas as tabelas | Criar, editar e excluir em todas as tabelas |
Permitir a criação e a edição de registros apenas (proibir a exclusão de registros) em todas as tabelas | Criar e editar em todas as tabelas |
Permitir a exibição de registros apenas (proibir a criação, edição e exclusão de registros) em todas as tabelas | Exibir só em todas as tabelas |
Proibir o acesso a registros em todas as tabelas | Todos sem acesso |
1. Comece editando um conjunto de privilégios novo ou existente na caixa de diálogo Editar conjunto de privilégios.
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. Na caixa de diálogo Privilégios do registro personalizado, selecione uma ou mais tabelas para as quais deseja editar privilégios personalizados. (Ou selecione Qualquer tabela nova para definir privilégios para qualquer tabela criada depois.)
4. Para definir privilégios personalizados para exibir, editar, criar e excluir registros, escolha uma das seguintes opções nas listas Exibir, Editar, Criar e Excluir na área Definir privilégios:
Escolha | Para |
Sim | Permitir o privilégio (exibição, edição, criação ou exclusão de registros). |
Limitado (disponível quando apenas uma única tabela está selecionada) | Permitir ou proibir o privilégio (exibição, edição e exclusão de registros) para certos registros na tabela. Na caixa de diálogo Especificar cálculo, insira um cálculo e clique em OK. Consulte Inserção de uma fórmula para limitar o acesso por registro abaixo. |
Não | Proibir o privilégio (exibição, edição, criação ou exclusão de registros). |
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. Para limitar o acesso ou a modificação de certos campos em uma tabela, avance para a próxima etapa.
6. Selecione a tabela que contém os campos para os quais deseja limitar o acesso. Em seguida, para Acesso a campo, escolha Limitado.
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:
Escolha | Para |
Modificável | Permitir a exibição e a edição dos dados do campo. |
Somente exibir | Permitir a exibição dos dados do campo. (A edição de dados do campo não é permitida.) |
Sem acesso | Proibir o acesso ao campo. Nota Quando o acesso a um ou mais campos for proibido em uma tabela que estava visível, o usuário verá |
•Os usuários que não puderem exibir certos registros ainda poderão navegar nesses registros, mas o usuário verá <Sem acesso>
em vez dos dados de campo em cada registro.
•Muitos recursos nos clientes do FileMaker são afetados quando você limita o acesso a registros, campos e tabelas em um arquivo. A tabela a seguir resume os efeitos de alguns recursos.
Recurso | Efeito da limitação do acesso a dados |
Pesquisas e novas pesquisas | As pesquisas e novas pesquisas são definidas por três componentes, e todos eles podem ser afetados por privilégios de acesso a dados: •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. •No mínimo, o campo de origem da pesquisa deve ter privilégios de exibição. •O campo de destino da pesquisa deve ter privilégios de edição. Os clientes do FileMaker não exibirão uma mensagem de erro se uma operação de pesquisa ignorar determinados registros devido a restrições de privilégio de acesso. |
Acesso a dados relacionados | No mínimo, os dois campos de correspondência em um relacionamento devem ter privilégios de exibição, para que o relacionamento funcione. Todos os campos relacionados que deseja exibir com base nos campos correspondentes devem ter também, no mínimo, privilégios de exibição. |
Buscas | 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. |
Quando uma lista de valores tiver como base o conteúdo de um campo, e os privilégios de exibição estiverem proibidos no campo, a lista de valores não exibirá nenhum valor. Isso é para que os usuários não tenham acesso a informações confidenciais inadvertidamente. Os resultados da função | |
Os resultados exibidos em campos de resumo e campos calculados, cujo resumo tem como base vários registros, excluirão dados dos registros para os quais os privilégios de exibição foram proibidos. | |
Localizar/substituir, Substituir conteúdo e verificação ortográfica | O usuário poderá alterar dados apenas usando esses recursos em: •registros com privilégios de edição. •campos modificáveis. |
Scripts | Você pode definir uma opção para que o script seja executado com privilégios de acesso total, o que permite que um script execute operações que um usuário com privilégios limitados geralmente não conseguiria executar. Se essa opção não for ativada, todas as etapas de script que tentarem acessar ou alterar dados restritos falharão. Consulte Criação e edição de scripts. |
Eventos da Apple | Os privilégios de acesso a dados podem afetar a capacidade de um usuário de obter, definir e excluir dados usando eventos Apple. Alguns comandos de eventos Apple poderão falhar se o usuário não tiver privilégios de acesso apropriados. |
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.
•O cálculo booleano que determina os privilégios de acesso a registro poderá ter resultados inesperados, particularmente se tiver como base um campo editável pelo usuário. Por exemplo, é possível que um usuário com privilégios de acesso para apenas alguns registros negue a si próprio, de maneira inadvertida, acesso a um registro após editá-lo. O usuário poderá fazer uma alteração no conteúdo de um registro que muda o resultado do cálculo de acesso a registro booleano, de forma que seja avaliado como falso; em seguida, esse usuário não conseguirá mais ver, editar ou excluir o registro quando sair dele.
Como as alterações são confirmadas assim que o usuário sai de um registro, o usuário que faz alterações desse tipo não conseguirá retornar ao registro. (Na maioria dos casos, você deverá definir como base os cálculos de acesso a registro em campos que não são diretamente editáveis pelos usuários, como campos inseridos automaticamente que contêm nomes de conta, datas de criação e datas de modificação.)
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).
•Para suporte total a várias janelas que possuam seus próprios conjuntos encontrados, os valores de resumo farão parte do conjunto encontrado. Um registro pode aparecer em várias janelas, e cada janela tem seu próprio conjunto encontrado e a própria ordem de classificação. Por esses motivos, não defina os cálculos de privilégio com base no resumo ou nas funções Get que dependem dos valores que usam um conjunto encontrado específico.