Créer une stratégie de données pour la sécurité au niveau des lignes

Utilisez une stratégie de données pour appliquer la sécurité au niveau des lignes à une ou plusieurs tables dans une connexion virtuelle. Une stratégie de données filtre les données, garantissant ainsi que les utilisateurs ne voient que les données qu’ils sont censés voir. Les stratégies de données s’appliquent aux connexions en direct et aux extraits.

À propos des stratégies de données

Une stratégie de données comporte trois composants principaux :

Exemple des trois composants d’une stratégie de données dans un éditeur de connexion virtuelle

  1. Les tables auxquelles elle s’applique, appelées tables de stratégie. Ce sont les tables qui sont filtrées.
  2. Les colonnes mappées qui définissent les relations entre les tables (par exemple entre les tables de droits et les tables de faits), et entre les colonnes de table et les colonnes de stratégie. Une colonne de stratégie est la colonne utilisée pour filtrer les données.
  3. La condition de stratégie, qui est une expression évaluée ou un calcul pour chaque ligne lors d’une requête. Si la condition de stratégie est TRUE, la ligne s’affiche dans la requête.

Lorsque vous créez une stratégie de données, vous avez besoin d’une colonne que vous pouvez utiliser pour filtrer les données. Cette colonne s’appelle une colonne de stratégie. Les données sont filtrées par la condition de stratégie, généralement à l’aide d’une fonction utilisateur, telle que USERNAME() ou FULLNAME().

Si votre table de stratégie comprend une colonne sur laquelle vous pouvez filtrer, utilisez cette colonne comme colonne de stratégie.

Lorsqu’une table de stratégie n’inclut pas une telle colonne, utilisez une table des droits avec une colonne que vous pouvez utiliser pour filtrer les données. Une table des droits est une table qui comprend à la fois une colonne de stratégie que vous pouvez utiliser pour filtrer les tables de stratégie, et une autre colonne que vous pouvez associer (mapper) à une colonne dans une table de stratégie (comme illustré dans l’exemple de stratégie de données ci-dessus).

Filtrer avec une colonne de stratégie à partir d’une table de stratégie

Le moyen le plus courant de filtrer les données consiste à utiliser une colonne de la table contenant les données sur lesquelles vous souhaitez filtrer. Utilisez cette colonne comme colonne de stratégie, puis mappez les colonnes de table appropriées à la colonne de stratégie.

Pour utiliser une colonne de stratégie pour filtrer vos données, commencez par ajouter des tables à la stratégie à partir du volet de gauche. Pour ajouter un table, effectuez l’une des opérations suivantes :

  • Double-cliquez sur le nom de la table.
  • Cliquez sur la flèche déroulante à côté du nom de la table et sélectionnez Gérer la table avec la politique.
  • Sinon, faites glisser la table vers la droite et déposez-la sur Ajouter en tant que table de stratégie.

Une fois qu’une table est ajoutée à une stratégie, une icône de bouclier Icône de stratégie de données figure à droite du nom de la table dans le volet de gauche indiquant qu’il s’agit d’une table de stratégie.

Ensuite, mappez les colonnes pour créer une relation entre le nom de la colonne de la table et le nom de la colonne de stratégie. Utilisez le nom de la colonne de stratégie dans la condition de stratégie de données pour contrôler l’accès aux données au niveau des lignes pour les utilisateurs :

  1. Cliquez sur +Ajouter une colonne au mappage pour ajouter une ou plusieurs colonnes qui serviront à filtrer les données.
  2. Nommez la colonne de stratégie. Vous utiliserez ce nom dans la condition de stratégie.
  3. Pour chaque table à laquelle la stratégie s’applique, utilisez le menu déroulant pour sélectionner la colonne de table qui correspond à la colonne de stratégie.
  4. Répétez ce processus pour autant de colonnes de stratégie que vous souhaitez utiliser dans la condition de stratégie.

Conseil : au lieu d’utiliser le bouton + Ajouter une colonne au mappage, vous pouvez commencer à saisir le calcul dans la zone de condition de stratégie et utiliser la saisie semi-automatique pour choisir le nom de la colonne, qui remplira ensuite les informations de la colonne de stratégie à l’étape 1.

Exemple d’utilisation d’une colonne de stratégie à partir d’une table de stratégie

Diagramme d’une stratégie de données qui utilise une colonne de stratégie d’une table de stratégie pour filtrer les données

  1. La table Sales comporte une colonne [Salesperson] et la table Region a une colonne [SalesRep]. Les données Salesperson et SalesRep correspondent au nom complet des utilisateurs Tableau sur votre site.
  2. Vous souhaitez filtrer les données Sales et Region par Salesperson. Vous nommez donc la colonne de stratégie « Salesperson », puis mappez la colonne Salesperson de Sales et la colonne SalesRep de Region à la colonne de stratégie Salesperson.
  3. Ensuite, écrivez la condition de stratégie pour filtrer les deux tables. Utilisez la colonne de stratégie [Salesperson] et la fonction utilisateur FULLNAME() afin que chaque utilisateur ne puisse voir que ses propres données.

Filtrer avec la colonne de stratégie d’une table des droits

Les tables des droits sont utilisées lorsque votre table de stratégie ne contient pas de colonne sur laquelle vous pouvez filtrer. Vous pouvez utiliser la table des droits pour mapper une colonne de la table de données à une colonne de la table des droits. Notez les points suivants :

  • Assurez-vous d’inclure la table des droits en tant que table dans la connexion virtuelle. Vous pouvez utiliser une table à partir de n’importe quelle connexion ou base de données comme table de droits centrale qui sécurise les tables dans de nombreuses autres bases de données. Dans certains cas, une table de droits qui se trouve dans la même base de données que les tables que vous sécurisez peut constituer un risque de sécurité potentiel en raison de la possibilité d’exposer les données des employés. Et le fait d’avoir une table de droits dans une base de données différente peut faciliter le contrôle des autorisations, par exemple, pour accorder à quelqu’un l’accès à une base de données.
  • Si vous ne souhaitez pas que les utilisateurs de la connexion virtuelle voient la table des droits, vous pouvez basculer le paramètre dans la colonne Visibilité de l’onglet Tables pour la masquer. Une fois masquée, la table des droits est toujours disponible pour le filtrage des politiques, mais ne peut pas être utilisée dans les visualisations ou les sources de données du classeur.

Remarque : la connexion directe à une sortie de flux (fichier .hyper) n’est pas prise en charge pour la table des droits. La sortie du flux doit écrire directement dans la base de données.

Pour utiliser une table des droits pour filtrer vos données :

  1. Ajoutez les tables auxquelles vous souhaitez que la stratégie de données s’applique. Effectuez l’une des actions suivantes :
    • Double-cliquez sur le nom de la table.
    • Cliquez sur la flèche déroulante à côté du nom de la table et sélectionnez Gérer la table avec la politique.
    • Sinon, faites glisser la table vers la droite et déposez-la sur Ajouter en tant que table de stratégie.
  2. Une fois qu’une table est ajoutée à une stratégie, une icône de bouclier Icône de stratégie de données figure à droite du nom de la table dans le volet de gauche indiquant qu’il s’agit d’une table de stratégie.
  3. Sélectionnez la table des droits, puis :
    • Cliquez sur la flèche déroulante et sélectionnez Utiliser comme table de droits.
    • Sinon, faites glisser la table vers la droite et déposez-la sur Ajouter en tant que table des droits.
  4. Pour chaque table à laquelle la stratégie s’applique, cliquez sur le menu déroulant et sélectionnez la colonne pour mapper la table de stratégie à la table des droits.

Exemple d’utilisation d’une colonne de stratégie à partir d’une table des droits

Diagramme d’une stratégie de données qui utilise une colonne de stratégie d’une table des droits pour filtrer les données

  1. Les données que vous souhaitez filtrer comportent une colonne EMP_ID, mais pas une colonne de nom d’employé. Cependant, vous avez une deuxième table qui comprend des colonnes pour EMP_ID et le nom complet (FULL NAME) de l’employé. De plus, les valeurs de la colonne FULL NAME de l’employé correspondent au nom complet des utilisateurs Tableau sur votre site.
  2. Vous pouvez ajouter la table Employee à la stratégie en tant que table des droits, puis mapper le nom de colonne de la table de stratégie EMP_ID au nom de colonne des droits EMP_ID pour chaque table.
  3. Utilisez ensuite la fonction FULLNAME() dans votre condition de stratégie pour faire correspondre le nom complet de l’utilisateur Tableau Server à la colonne [FULL NAME] de la table des droits (qui est la colonne de stratégie) afin que chaque utilisateur ne puisse voir que ses propres données.

Écrire une condition de stratégie

La dernière étape de la création d’une stratégie de données consiste à écrire une condition de stratégie, qui est un calcul ou une expression utilisé pour définir l’accès au niveau des lignes. Les conditions de stratégie sont souvent utilisées pour limiter l’accès aux utilisateurs ou aux groupes via des fonctions utilisateur.

Condition de stratégie :

  • Est requis dans une stratégie de données.
  • Doit être évaluée sur vrai ou faux.
  • Affiche les lignes lorsque la condition de stratégie est vraie.

Lorsque vous fermez un onglet de stratégie, votre travail n’est pas supprimé.

Exemples de conditions de stratégie

Affiche uniquement les lignes où la valeur de la colonne Region est North :

[Region] = "North"

Permet à un utilisateur connecté de voir les lignes où le nom de l’utilisateur correspond à la valeur contenue dans EmployeeName :

FULLNAME() = [EmployeeName]

Permet aux membres du groupe Managers de voir toutes les lignes, tandis que les utilisateurs ne peuvent voir que les lignes où leur nom d’utilisateur correspond à la valeur de la colonne employee_name :

ISMEMBEROF('Managers') OR USERNAME() = [employee_name]

Fonctions Tableau prises en charge dans les conditions de stratégie

Les conditions de stratégie prennent en charge un sous-ensemble de fonctions Tableau :

  • Logique (sauf lié à null)
  • Chaîne
  • Utilisateur
  • Date
  • Nombre : MIN, MID, MAX

Pour voir quelles fonctions spécifiques sont prises en charge, dans l’éditeur de connexion virtuelle, dans l’onglet Stratégies de données, consultez le panneau Référence à droite.

Remarque : Si la connexion virtuelle a une stratégie de données qui contient des fonctions utilisateur(Le lien s’ouvre dans une nouvelle fenêtre) (par exemple, USERNAME()) et que vous vous y connectez à partir d’un classeur ou d’une source de données et que vous créez un extrait à cet emplacement, l’extrait ne contiendra que les lignes qui correspondent à la stratégie de données de la connexion virtuelle au moment de la création de l’extrait. Pour tirer parti d’une connexion virtuelle avec les fonctions utilisateur dans la stratégie de données, utilisez une connexion en direct du classeur ou de la source de données à la connexion virtuelle au lieu d’un extrait.

Qui peut le faire?

Pour créer une stratégie de données, vous devez

  • avoir des informations d’identification à la base de données à laquelle la connexion virtuelle se connecte, et
  • être un administrateur de serveur ou de site, ou avoir le rôle Creator.

Étapes suivantes

Après avoir créé une stratégie de données, l’étape suivante consiste à vérifier qu’elle fonctionne comme prévu. Consultez Tester la sécurité au niveau de la ligne avec l’aperçu en tant qu’utilisateur. Ou, si vous êtes prêt à partager la connexion virtuelle et ses stratégies de données avec d’autres, consultez Publier une connexion virtuelle et définir des autorisations.

Ressources

Pour plus de détails sur les calculs, consultez Comprendre les calculs dans Tableau(Le lien s’ouvre dans une nouvelle fenêtre) dans l’aide de Tableau Desktop et de la création Web.

Pour plus d’informations sur les fonctions utilisateur, consultez Fonctions utilisateur(Le lien s’ouvre dans une nouvelle fenêtre) dans l’aide de Tableau Desktop et de la création Web.

Pour plus d’informations sur les autres options de sécurité au niveau des lignes dans Tableau, consultez Présentation des options de sécurité au niveau des lignes dans Tableau(Le lien s’ouvre dans une nouvelle fenêtre) dans l’aide de Tableau Server.

Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!