Sécurité au niveau des colonnes dans l'entrepôt de données Fabric

S’applique à : point de terminaison d’analytique SQL et entrepôt dans Microsoft Fabric

La sécurité au niveau des colonnes simplifie la conception et le codage de la sécurité de votre application, ce qui vous permet de limiter l'accès aux colonnes afin de protéger les données sensibles. Vous pouvez, par exemple, vous assurer que des utilisateurs spécifiques peuvent accéder uniquement à certaines colonnes d’une table qui sont pertinentes par rapport à leur service.

Sécurité au niveau des colonnes au niveau des données

La logique de restriction d'accès se situe au niveau de la base de données, et non dans un seul niveau d'application. La base de données applique les restrictions d'accès à chaque tentative d'accès aux données, à partir de n'importe quelle application ou plateforme de reporting, y compris Power BI. Cette restriction renforce la fiabilité et la robustesse de votre sécurité en réduisant la surface d'exposition de votre système de sécurité global.

La sécurité au niveau des colonnes s’applique uniquement aux requêtes sur un point de terminaison d’analyse Warehouse ou SQL dans Fabric. Les requêtes Power BI sur un entrepôt en mode Direct Lake reviendront au mode Direct Query pour respecter la sécurité au niveau des colonnes.

Restreindre l'accès à certaines colonnes à certains utilisateurs

De plus, la sécurité au niveau des colonnes est plus simple que la conception de vues supplémentaires pour filtrer les colonnes afin d'imposer des restrictions d'accès aux utilisateurs.

Implémentez la sécurité au niveau des colonnes avec l'instruction GRANT T-SQL. Pour simplifier la gestion, il est préférable d'attribuer des autorisations à des rôles plutôt que d'utiliser des individus.

La sécurité au niveau des colonnes est appliquée à entrepôt partagé ou maison au bord du lac, car la source de données sous-jacente n'a pas changé.

Seule l’authentification Microsoft Entra est prise en charge.

Exemples

Cet exemple créera un tableau et limitera les colonnes que charlie@contoso.com peuvent voir dans le tableau customers.

CREATE TABLE dbo.Customers
  (CustomerID int,
   FirstName varchar(100) NULL,
   CreditCard char(16) NOT NULL,
   LastName varchar(100) NOT NULL,
   Phone varchar(12) NULL,
   Email varchar(100) NULL);

Nous allons permettre à Charlie d'accéder uniquement aux colonnes liées au client, mais pas à la colonne sensible CreditCard :

GRANT SELECT ON Customers(CustomerID, FirstName, LastName, Phone, Email) TO [Charlie@contoso.com];

Les requêtes exécutées comme charlie@contoso.com échoueront si elles incluent la colonne CreditCard :

SELECT * FROM Customers;
Msg 230, Level 14, State 1, Line 12
The SELECT permission was denied on the column 'CreditCard' of the object 'Customers', database 'ContosoSales', schema 'dbo'.

Étape suivante