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