Implémenter la sécurité au niveau des lignes dans l'entrepôt de données Microsoft Fabric
S’applique à :✅ point de terminaison d’analytique SQL et entrepôt dans Microsoft Fabric
La sécurité au niveau des lignes (RLS, row-level security) dans l’entrepôt Fabric et le point de terminaison d’analytique SQL vous permet de contrôler l'accès aux lignes d'une table de base de données en fonction des rôles et prédicats utilisateur. Pour plus d'informations, consultez Sécurité au niveau des lignes dans l'entrepôt de données Fabric.
Ce guide vous conseille dans les étapes de mise en œuvre de la sécurité au niveau des lignes dans l’entrepôt Microsoft Fabric ou le point de terminaison d’analytique SQL.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Un espace de travail Fabric avec une capacité active ou une capacité d’essai.
- Un entrepôt Fabric ou un point de terminaison d’analytique SQL sur un Lakehouse.
- Soit les droits d’administrateur, de membre ou de contributeur sur l’espace de travail, soit des autorisations élevées sur l’entrepôt ou le point de terminaison d’analytique SQL.
1. Se connecter
- Connectez-vous à l’aide d’un compte avec un accès élevé sur l’entrepôt ou le point de terminaison d’analytique SQL. (Soit le rôle d'administrateur/membre/contributeur sur l'espace de travail, soit les autorisations de contrôle sur l'entrepôt ou le point de terminaison d’analytique SQL).
- Ouvrez l'espace de travail Fabric et accédez à l'entrepôt ou au point de terminaison d’analytique SQL auquel vous souhaitez appliquer la sécurité au niveau des lignes.
2. Définir les stratégies de sécurité
Déterminez les rôles et les prédicats que vous souhaitez utiliser pour contrôler l’accès aux données. Les rôles définissent qui peut accéder aux données et les prédicats définissent les critères d'accès.
Créez des prédicats de sécurité. Les prédicats de sécurité sont des conditions qui déterminent les lignes auxquelles un utilisateur peut accéder. Vous pouvez créer des prédicats de sécurité en tant que fonctions table en ligne. Cet exercice simple suppose qu'il existe une colonne dans votre table de données,
UserName_column
, qui contient le nom d'utilisateur correspondant, renseigné par la fonction système USER_NAME().-- Creating schema for Security CREATE SCHEMA Security; GO -- Creating a function for the SalesRep evaluation CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS tvf_securitypredicate_result WHERE @UserName = USER_NAME(); GO -- Using the function to create a Security Policy CREATE SECURITY POLICY YourSecurityPolicy ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column) ON sampleschema.sampletable WITH (STATE = ON); GO
Remplacez
YourSecurityPolicy
par le nom de votre stratégie,tvf_securitypredicate
par le nom de votre fonction de prédicat,sampleschema
par le nom de votre schéma etsampletable
par le nom de votre table cible.Remplacez
UserName_column
par une colonne de votre tableau contenant les noms d'utilisateur.Remplacez
WHERE @UserName = USER_NAME();
par une clauseWHERE
qui correspond au filtre de sécurité basé sur le prédicat souhaité. Par exemple, cela filtre les données où la colonneUserName
, mappée au paramètre@UserName
, correspond au résultat de la fonction système USER_NAME().Répétez ces étapes pour créer des stratégies de sécurité pour d’autres tables si nécessaire.
3. Tester la sécurité au niveau des lignes
Connectez-vous à Fabric en tant qu'utilisateur membre d'un rôle avec une stratégie de sécurité associée. Utilisez la requête suivante pour vérifier la valeur qui doit correspondre dans la table.
SELECT USER_NAME()
Interrogez les tables de la base de données pour vérifier que la sécurité au niveau des lignes fonctionne comme prévu. Les utilisateurs ne doivent voir que les données qui satisfont au prédicat de sécurité défini dans leur rôle. Par exemple :
SELECT * FROM sampleschema.sampletable
Des résultats filtrés similaires pour l'utilisateur seront filtrés avec d'autres applications qui utilisent l'authentification Microsoft Entra pour l'accès à la base de données. Pour plus d'informations sur l'authentification Microsoft Entra en tant qu’alternative à l'authentification SQL dans Microsoft Fabric.
4. Surveiller et maintenir la sécurité au niveau des lignes
Surveillez et mettez régulièrement à jour vos politiques de sécurité au niveau des lignes à mesure que vos exigences de sécurité évoluent. Gardez une trace des attributions de rôles et assurez-vous que les utilisateurs disposent des accès appropriés.