Partager via


Autorisations granulaires SQL dans Microsoft Fabric

S’applique à : point de terminaison d’analytique SQL et Warehouse dans Microsoft Fabric

Lorsque les autorisations par défaut fournies par l'affectation aux rôles d'espace de travail ou accordées via les autorisations d'élément sont insuffisantes, des constructions SQL standard sont disponibles pour un contrôle plus granulaire.

Pour le point de terminaison d’analytique SQL et Warehouse :

  • La sécurité au niveau objet peut être gérée à l’aide des syntaxes GRANT, REVOKE et DENY T-SQL.
  • Les utilisateurs peuvent être affectés à des rôles SQL, à la fois des rôles de base de données personnalisés et intégrés.

Autorisations granulaires utilisateur

  • Pour qu’un utilisateur se connecte à la base de données, il doit être affecté à un rôle d’espace de travail ou doit disposer de l’autorisation de lecture de l’élément. Sans au moins l’autorisation de lecture, la connexion échouera.
  • Si vous souhaitez configurer les autorisations granulaires d’un utilisateur avant de lui permettre de se connecter à l’entrepôt, les autorisations peuvent d’abord être configurées dans SQL. Ensuite, ils peuvent obtenir un accès en les affectant à un rôle d’espace de travail ou en leur accordant des autorisations d’élément.

Limites

  • Pour le moment, CREATE USER ne peut pas être exécuté explicitement. Lorsque GRANT ou DENY est exécuté, l’utilisateur est créé automatiquement. L’utilisateur ne pourra pas se connecter tant que des droits suffisants au niveau de l’espace de travail ne seront pas accordés.

Voir mes autorisations

Lorsqu’un utilisateur se connecte à la chaîne de connexion SQL, il peut afficher les autorisations disponibles à l’aide de la fonction sys.fn_my_permissions.

Autorisations au niveau de la base de données utilisateur :

SELECT *
FROM sys.fn_my_permissions(NULL, 'Database');

Autorisations au niveau du schéma de l’utilisateur :

SELECT *
FROM sys.fn_my_permissions('<schema-name>', 'Schema');

Autorisations au niveau de l’objet de l’utilisateur :

SELECT *
FROM sys.fn_my_permissions('<schema-name>.<object-name>', 'Object');

Afficher les autorisations accordées explicitement aux utilisateurs

Lorsqu’il est connecté via la chaîne de connexion SQL, un utilisateur disposant d’autorisations élevées peut interroger les autorisations accordées à l’aide des vues système. Cela n’affiche pas les utilisateurs ou les autorisations d’utilisateur accordées aux utilisateurs qui se voient affectés à des rôles d’espace de travail ou à qui des autorisations d’élément sont attribuées.

SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc, 
 pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe
 ON pe.grantee_principal_id = pr.principal_id;

Fonctionnalités de protection des données

Vous pouvez sécuriser les filtres de colonnes et les filtres de lignes basés sur des prédicats sur les tables dans Warehouse ou le point de terminaison d’analytique SQL pour les rôles et les utilisateurs dans Microsoft Fabric. Vous pouvez également masquer les données sensibles aux non-administrateurs à l’aide du masquage des données dynamiques.