Protection des bases de données > Création et modification de jeux de privilèges > Modification des privilèges d'accès aux enregistrements
 
Modification des privilèges d'accès aux enregistrements
Les jeux de privilèges permettent de limiter l'accès aux enregistrements d'un fichier. Pour un fichier, vous pouvez définir :
Privilèges pour toutes les tables : vous pouvez déterminer si un jeu de privilèges autorise la création, la modification et la suppression d'enregistrements dans toutes les tables d'un fichier.
Privilèges personnalisés pour tables individuelles : vous pouvez définir les droits d'accès d'enregistrements individuels pour chaque table. Par exemple, le jeu de privilèges vous permet de limiter la possibilité de :
Visualiser, modifier, créer ou supprimer tous les enregistrements de chaque table.
Visualiser, modifier et supprimer certains enregistrements de chaque table. Les privilèges sont limités au moyen d'un calcul renvoyant un résultat booléen pour chaque enregistrement. Lorsque le calcul renvoie la valeur Vrai, l'accès est autorisé pour l'opération correspondante (telle que la visualisation de l'enregistrement). Lorsque la valeur renvoyée par le calcul est Faux, l'accès est refusé pour cette opération.
Consulter ou modifier certaines rubriques dans chaque table. Lorsque l'accès à une ou à plusieurs rubriques est interdit dans une table visible, l'utilisateur voit s'afficher la mention <Accès refusé> à la place des données de rubrique.
Les privilèges liés aux enregistrements ne peuvent être configurés que pour les tables définies dans le fichier actif. Si le fichier contient des liens vers des tables d'autres fichiers que vous souhaitez protéger, vous devez créer des comptes et des jeux de privilèges dans les autres fichiers pour protéger ces tables. Consultez la section A propos des comptes, jeux de privilèges et privilèges étendus.
Pour modifier les privilèges d'accès aux enregistrements pour toutes les tables :
1. Commencez par modifier un jeu de privilèges nouveau ou existant dans la boîte de dialogue Modifier jeu de privilèges.
Consultez la section Création et modification de jeux de privilèges.
2. Dans la zone Accès aux données et conception, sélectionnez une option sous Enregistrements.
 
Pour que le jeu de privilèges
Choisir
Autorise la création, la modification et la suppression des enregistrements dans toutes les tables
Création, modification et suppression dans toutes les tables
Autorise uniquement la création et la modification des enregistrements (et non leur suppression) dans toutes les tables
Création et modification dans toutes les tables
Autorise uniquement la visualisation des enregistrements (et non leur création, modification ou suppression) dans toutes les tables
Visualisables uniquement dans toutes les tables
Interdise l'accès aux enregistrements dans toutes les tables
Accès refusé pour toutes
3. Cliquez sur OK, puis cliquez sur OK dans la boîte de dialogue Gérer la sécurité.
Pour assigner le jeu de privilèges à un ou plusieurs comptes, voir la section Création et modification de comptes.
Pour modifier les privilèges d'accès aux enregistrements pour des tables individuelles :
1. Commencez par modifier un jeu de privilèges nouveau ou existant dans la boîte de dialogue Modifier jeu de privilèges.
Consultez la section Création et modification de jeux de privilèges.
2. Dans la zone Accès aux données et conception, sélectionnez Privilèges personnalisés sous Enregistrements.
3. Dans la boîte de dialogue Privilèges personnalisés d'accès aux enregistrements, sélectionnez une ou plusieurs tables dont vous souhaitez modifier les privilèges personnalisés. Vous avez également la possibilité de sélectionner Toute nouvelle table afin de définir les privilèges pour toutes les tables que vous créerez par la suite.
4. Pour configurer des privilèges personnalisés pour la visualisation, la modification, la création et la suppression d'enregistrements, sélectionnez l'une des options ci-dessous dans les listes Affichage, Edition, Création et Suppression de la zone Privilèges :
 
Choisir
Pour
Oui
Accorder le privilège (affichage, modification, création ou suppression d'enregistrements).
Limité (option disponible lorsqu'une seule table est sélectionnée)
Accorder ou refuser le privilège (affichage, modification et suppression d'enregistrements) pour certains enregistrements de la table.
Dans la boîte de dialogue Calcul, entrez un calcul, puis cliquez sur OK. Consultez la section Saisie d'une formule pour les restrictions d'accès à des enregistrements individuels ci-dessous.
Non
Refuser le privilège (affichage, modification, création ou suppression d'enregistrements).
Remarque  Evitez de créer des combinaisons incohérentes de privilèges d'affichage, de modification, de création et de suppression. Par exemple, il est inutile d'autoriser des utilisateurs à supprimer des enregistrements qu'ils ne peuvent pas visualiser.
5. Pour limiter la consultation ou la modification de certaines rubriques dans une table, passez à l'étape ci-dessous. Dans le cas contraire, cliquez sur OK et passez directement à l’étape 9.
6. Sélectionnez la table contenant les rubriques dont vous souhaitez limiter l'accès. Dans la zone Rubriques, sélectionnez l'option limité.
7. Dans la boîte de dialogue Privilèges personnalisés d'accès aux rubriques, sélectionnez chaque rubrique dont vous souhaitez limiter l'accès. Vous avez également la possibilité de sélectionner Toute nouvelle rubrique afin de définir les privilèges personnalisés pour toutes les rubriques que vous créez par la suite). Puis sélectionnez l'une des options suivantes :
 
Choisir
Pour
Modifiable
Autoriser l'affichage et la modification des données de rubrique.
Visualisable uniquement
Autoriser l'affichage des données de rubrique, mais en interdire la modification.
Accès refusé
Interdire l'accès à la rubrique.
Remarque  Lorsque l'accès à une ou plusieurs rubriques est interdit dans une table visible, l'utilisateur voit s'afficher la mention <Accès refusé> à la place des données de rubrique.
8. Cliquez deux fois sur OK.
Cette opération affiche la boîte de dialogue Modifier jeu de privilèges.
9. Cliquez sur OK, puis cliquez sur OK dans la boîte de dialogue Gérer la sécurité.
Remarques 
Les utilisateurs non autorisés à visualiser certains enregistrements peuvent malgré tout parcourir ces derniers, mais voient s'afficher la mention <Accès refusé> à la place des données de rubrique dans chaque enregistrement.
La limitation de l’accès aux enregistrements, rubriques et tables d’un fichier affecte de nombreuses fonctionnalités de FileMaker Pro. Le tableau ci-après récapitule les effets de cette limitation sur certaines de ces fonctions.
 
Fonction
Effet de la limitation de l'accès aux données
Références externes et mise à jour des références
Les références externes et les mises à jour des références sont définies par trois composants qui sont tous susceptibles d'être affectés par les privilèges d'accès aux données :
Les rubriques sources utilisées dans le lien doivent disposer au minimum de privilèges d'affichage. En outre, aucune référence externe n'est effectuée pour les enregistrements non affichables à la fois dans les tables source et cible car aucune correspondance n'est possible dans ce cas. Ceci concerne le premier enregistrement correspondant lié, ainsi que tous les enregistrements utilisés pour copier la valeur supérieure ou inférieure suivante.
La rubrique source de la référence externe doit bénéficier au minimum de privilèges d'affichage.
La rubrique cible de la référence externe doit être dotée de privilèges de modification.
FileMaker Pro n’affiche aucun message d’erreur si une opération de référence externe ignore certains enregistrements en raison de limitations des privilèges d’accès.
Accès aux données liées
Les deux rubriques correspondantes d'un lien doivent au moins disposer de privilèges d'affichage pour que le lien fonctionne. Les rubriques liées que vous souhaitez afficher en fonction des rubriques correspondantes doivent également bénéficier de privilèges d'affichage au minimum.
Recherches
Le jeu d'enregistrements trouvés est toujours filtré de façon à ne présenter que les enregistrements disposant au moins de privilèges d'affichage. Les résultats de la fonction Obtenir ( NombreEnregTrouvés ) sont également affectés si l'accès est limité.
Lorsqu'une liste de valeurs est basée sur le contenu d'une rubrique, et que les privilèges d'affichage sont refusés pour la rubrique, la liste n'affiche aucune valeur. Ceci permet d'éviter que des utilisateurs n'accèdent accidentellement à des informations confidentielles. Les résultats de la fonction ElémentsListeDeValeurs sont également masqués lorsque l'accès est limité.
Les résultats affichés dans les rubriques de type Statistique et Calcul qui effectuent un récapitulatif sur plusieurs enregistrements excluent les données des enregistrements ne disposant pas de privilèges d'affichage.
Fonctions Rechercher et remplacer, Remplacer le contenu et Orthographe
La modification des données à l'aide de ces fonctions n'est possible que dans :
les enregistrements bénéficiant de privilèges de modification ;
les rubriques modifiables.
Scripts
Vous pouvez définir une option d'exécution d'un script avec des privilèges en accès intégral, permettant à un script d'effectuer des opérations qui seraient normalement interdites à un utilisateur doté de privilèges limités. Si vous n'activez pas cette option, toutes les actions de script qui tenteront d'afficher ou de modifier des données à accès restreint échoueront. Consultez la section Création et modification de scripts.
Apple Events
Les privilèges d'accès aux données peuvent affecter la capacité d'un utilisateur à récupérer, définir et supprimer des données à l'aide d'Apple Events. Certaines commandes Apple Events risquent d'échouer si l'utilisateur ne dispose pas des privilèges d'accès appropriés.
Saisie d'une formule pour les restrictions d'accès à des enregistrements individuels
Pour accorder ou refuser les privilèges d'affichage, de modification et de suppression pour certains enregistrements d'une table, vous devez définir un calcul booléen déterminant si le privilège est ou non accordé. L'accès à chaque enregistrement de la base de données est accordé lorsque le calcul renvoie la valeur Vrai ou une valeur différente de zéro. Il est en revanche refusé si le calcul renvoie la valeur Faux ou zéro. En voici deux exemples :
Pour limiter l'accès aux seuls enregistrements créés par le compte en cours : Définissez une rubrique Texte intitulée Enregistrement_Créé_Par, puis configurez l'option de saisie automatique de cette rubrique pour que le nom de compte soit automatiquement entré lors de la création de l'enregistrement. (voir Définition de l'entrée automatique de données). Puis utilisez le calcul ci-après lors de la définition des privilèges d'accès personnalisés pour les enregistrements :
Enregistrement_Créé_Par = Obtenir (NomCompte)
L'utilisateur sera doté de privilèges de consultation uniquement pour les enregistrements pour lesquels le calcul ci-dessus renvoie la valeur Vrai.
Pour limiter l'accès aux seuls enregistrements créés à la date du jour : Définissez une rubrique Date intitulée Date_création_enregistrement, puis configurez l'option de saisie automatique de cette rubrique pour que la date de création soit automatiquement entrée lors de la création de l'enregistrement. (voir Définition de l'entrée automatique de données). Puis utilisez le calcul ci-après lors de la définition des privilèges d'accès personnalisés pour les enregistrements :
Date_création_enregistrement = Obtenir (DateActuelle)
L'utilisateur sera doté de privilèges de consultation uniquement pour les enregistrements pour lesquels le calcul ci-dessus renvoie la valeur Vrai.
Conseil  Si vous définissez un calcul pour qu'il interdise l'affichage de certains enregistrements d'une table, vous devez généralement utiliser le même calcul pour interdire la modification et la suppression des mêmes types d'enregistrements. Dans le cas contraire, vous risquez par mégarde d'autoriser des utilisateurs à modifier ou supprimer des enregistrements qu'ils ne peuvent pas visualiser.
Remarques 
Le calcul booléen déterminant les privilèges d'accès aux enregistrements peut produire des résultats inattendus, notamment s'il repose sur une rubrique modifiable par les utilisateurs. Par exemple, il est possible qu'un utilisateur doté de privilèges d'accès pour certains enregistrements uniquement se refuse accidentellement l'accès à un enregistrement après avoir modifié ce dernier. En effet, l'utilisateur pourrait modifier le contenu d'un enregistrement de façon telle que le calcul booléen pour l'accès aux enregistrements renvoie la valeur Faux ; en conséquence, l'utilisateur ne serait plus en mesure de visualiser, modifier ou supprimer l'enregistrement après en être sorti.
Les modifications étant validées dès qu'un utilisateur quitte un enregistrement, l'utilisateur ne pourra plus rouvrir l'enregistrement après avoir effectué ce type de changement. Dans la majorité des cas, vous devez baser les calculs d'accès aux enregistrements sur des rubriques non modifiables par les utilisateurs, telles que les rubriques à saisie automatique contenant des noms de compte, des dates de création ainsi que des dates de modification.
En outre, si le fichier est partagé et que le calcul booléen déterminant les privilèges d'accès aux enregistrements contient une ou plusieurs rubriques de type Global, vous pouvez améliorer les performances réseau en déplaçant certaines rubriques de type Global dans une table distincte. Consultez les remarques de la section Définition de rubriques de type Global (rubriques avec stockage global).
Afin de prendre en charge intégralement les fenêtres multiples possédant leurs propres jeux d'enregistrements trouvés, les valeurs récapitulatives font partie des jeux d'enregistrements trouvés. Un même enregistrement peut apparaître dans plusieurs fenêtres et chaque fenêtre possède son propre jeu d'enregistrements trouvés et son propre ordre de tri. Pour ces raisons, ne faites pas reposer les calculs de privilèges sur des fonctions récapitulatives ni sur des fonctions d'obtention qui font appel à des valeurs employant un jeu d'enregistrements trouvés précis.