Del via


Sikkerhet på kolonnenivå i datalager for stoff

Gjelder for:✅ SQL Analytics-endepunkt og Warehouse i Microsoft Fabric

Sikkerhet på kolonnenivå forenkler utformingen og kodingen av sikkerhet i programmet, slik at du kan begrense kolonnetilgang for å beskytte sensitive data. Du kan for eksempel sikre at bestemte brukere bare kan få tilgang til bestemte kolonner i en tabell som er relevant for avdelingen.

Sikkerhet på kolonnenivå på datanivå

Tilgangsbegrensningslogikken er plassert i databasenivået, ikke i ett enkelt programnivå. Databasen bruker tilgangsbegrensningene hver gang datatilgang forsøkes, fra alle programmer eller rapporteringsplattformer, inkludert Power BI. Denne begrensningen gjør sikkerheten mer pålitelig og robust ved å redusere overflatearealet i det generelle sikkerhetssystemet.

Sikkerhet på kolonnenivå gjelder bare for spørringer på et lager- eller SQL-analyseendepunkt i Fabric. Power BI-spørringer på et lager i Direct Lake-modus vil falle tilbake til Direct Query-modus for å overholde sikkerhet på kolonnenivå.

Begrense tilgangen til bestemte kolonner til bestemte brukere

I tillegg er sikkerhet på kolonnenivå enklere, og enn å utforme flere visninger for å filtrere ut kolonner for å innføre tilgangsbegrensninger for brukerne.

Implementere sikkerhet på kolonnenivå med GRANT T-SQL-setningen. For enkelhetsbehandling foretrekkes det å tilordne tillatelser til roller til å bruke enkeltpersoner.

Sikkerhet på kolonnenivå brukes på delt lager eller lakehouse som åpnes gjennom et SQL Analytics-endepunkt, fordi den underliggende datakilden ikke har endret seg.

Bare Microsoft Entra-godkjenning støttes. Hvis du vil ha mer informasjon, kan du se Microsoft Entra-godkjenning som et alternativ til SQL-godkjenning i Microsoft Fabric.

Eksempler

Dette eksemplet oppretter en tabell og begrenser kolonnene som charlie@contoso.com kan ses i tabellen 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);

Vi gir Charlie tilgang til bare kolonnene som er relatert til kunden, men ikke den sensitive CreditCard kolonnen:

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

Spørringer som kjøres som charlie@contoso.com mislykkes hvis de inkluderer CreditCard kolonnen:

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'.

Neste trinn