Filtres de données de sécurité

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • Les filtres de données de sécurité restreignent l’accès aux enregistrements en fonction du rôle ou des assertions liées à l’attribut de sécurité.

    Explorer les filtres de données de sécurité

    Les filtres de données de sécurité permettent de restreindre l’accès aux enregistrements en fonction du rôle d’un utilisateur ou d’autres affirmations liées à un attribut de sécurité. Les filtres de données de sécurité garantissent que seuls les utilisateurs autorisés peuvent afficher les enregistrements, quelle que soit la manière dont ils accèdent aux données. Les filtres de données de sécurité sont appliqués avant l’exécution d’une requête.

    Fonctionnalités des filtres de données de sécurité

    Les principales caractéristiques des filtres de données de sécurité sont les suivantes :
    • Les filtres de données de sécurité sont appliqués dans la requête.
    • Conditions de filtre des données de sécurité ET à la requête sur la table cible et entre elles.
    • Les filtres de données de sécurité ne sont pas vérifiés par canRead. Voir Utilisations des filtres de données de sécurité pour plus de détails
    • Les règles de définition du champ d’application du filtre de données sont basées sur le champ d’application de la table, les filtres de données ne suivent pas les règles de champ d’application ScopeMaster ou sys_scope

    Application et mise en application du filtre de données de sécurité

    En général, les filtres de données de sécurité sont appliqués après les ACL absolues (également appelées ACL au niveau de la table) et avant les ACL de ligne. Les filtres de données de sécurité sont appliqués par défaut et ont un impact sur le comportement du système s’ils ne sont pas utilisés avec précaution. Consultez la liste Emplacements des filtres de sécurité par défaut des filtres de données de sécurité par défaut.

    Les filtres de données de sécurité ne sont appliqués qu’aux requêtes GlideRecordSecure, GlideRecordSandbox et GlideAggregateSandbox par défaut. Il existe deux nouvelles API GlideRecord enableSecurityFeature et disableSecurityFeature qui peuvent être utilisées dans les scripts Java et côté serveur pour activer ou désactiver les filtres de données pour une requête spécifique.
    Important :
    Vous devez activer explicitement les filtres de données pour les requêtes destinées aux utilisateurs qui n’utilisent pas GlideRecordSecure.

    Utilisations des filtres de données de sécurité

    Les filtres de données de sécurité sont les mieux adaptés pour :
    • Empêcher les données sensibles de quitter la base de données
    • Supprimer le message « lignes masquées par la sécurité »
    • Empêcher les fuites de données sensibles par rapport aux rapports
    Soyez prudent lorsque vous utilisez des filtres de données de sécurité :
    • En tant que contrôles de visibilité
    • Avec un grand nombre de conditions de filtre
    • Sur les colonnes non indexées

    Comportement du filtre de données de sécurité

    Plusieurs filtres de données de sécurité se combinent pour l’évaluation, comme un ET combine des opérandes. À titre d’exemple, trois filtres de données de sécurité sont donnés :
    • Filtre 1 : « actif = vrai »
    • Filtre 2 : priority=1
    • Filtre 3 : état=ouvert
    Et une première question :
    SELECT * FROM task WHERE state != closed AND active = true AND
            priority = 1
    La dernière question est la suivante :
    SELECT * FROM task WHERE state != closed
              AND active = true AND priority = 1 AND state = open

    Une différence importante dans la façon dont les filtres de données de sécurité et les ACL sont appliqués est que les filtres de données d’une table enfant ne s’appliquent pas à la table parente lorsque les données sont interrogées à partir de la table parent. Ajoutez un filtre de données sur les tables enfant et parente pour restreindre l’accès aux enregistrements de la table parente.

    Remarque :
    Une solution courante consiste à ajouter un filtre de données sur le parent qui masque complètement les enregistrements enfants dans la table parente.

    Considérations relatives aux performances des filtres de données de sécurité

    Les filtres de données de sécurité peuvent avoir un impact sur les performances du système et ralentir les temps de chargement des requêtes et des pages, s’ils ne sont pas utilisés avec précaution. Il existe trois facteurs principaux dans l’exécution des requêtes :
    • Nombre de filtres appliqués
    • Complexité de la requête utilisateur
    • Complexité des filtres appliqués aux conditions
    Ces facteurs déterminent le coût de calcul d’une requête. Un coût de calcul élevé affectera la réactivité de l’instance.
    Voici quelques exemples d’utilisation qui augmentent le coût de calcul :
    • Interrogation des colonnes non indexées
    • Utilisation de l’opérateur contains
    • Analyses complètes de la table

    Lors de la création d’un filtre de données de sécurité, utilisez-le pour évaluer l’impact sur les Outil d’analyse des performances du filtre de données de sécurité performances et assurez-vous d’appliquer les filtres de données de sécurité de manière responsable.