Dela via


Säkerhet på kolumnnivå i fabric-datalager

Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric

Säkerhet på kolumnnivå förenklar utformningen och kodningen av säkerhet i ditt program, så att du kan begränsa kolumnåtkomsten för att skydda känsliga data. Du kan till exempel se till att specifika användare bara kan komma åt vissa kolumner i en tabell som är relevanta för deras avdelning.

Säkerhet på kolumnnivå på datanivå

Logiken för åtkomstbegränsning finns på databasnivån, inte på någon enskild programnivå. Databasen tillämpar åtkomstbegränsningarna varje gång dataåtkomst görs, från alla program eller rapporteringsplattformar, inklusive Power BI. Den här begränsningen gör säkerheten mer tillförlitlig och robust genom att minska ytan på ditt övergripande säkerhetssystem.

Säkerhet på kolumnnivå gäller endast för frågor på en slutpunkt för lager- eller SQL-analys i Infrastrukturresurser. Power BI-frågor på ett lager i Direct Lake-läge återgår till Direct Query-läge för att följa säkerhet på kolumnnivå.

Begränsa åtkomsten till vissa kolumner till vissa användare

Dessutom är säkerhet på kolumnnivå enklare och än att utforma ytterligare vyer för att filtrera bort kolumner för att införa åtkomstbegränsningar för användarna.

Implementera säkerhet på kolumnnivå med GRANT T-SQL-instruktionen. För enkelhetens skull är det bäst att tilldela behörigheter till roller till att använda enskilda användare.

Säkerhet på kolumnnivå tillämpas på delat lager eller lakehouse som nås via en SQL-analysslutpunkt, eftersom den underliggande datakällan inte har ändrats.

Endast Microsoft Entra-autentisering stöds. Mer information finns i Microsoft Entra-autentisering som ett alternativ till SQL-autentisering i Microsoft Fabric.

Exempel

Det här exemplet skapar en tabell och begränsar de kolumner som charlie@contoso.com kan visas i customers tabellen.

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 tillåter Charlie att endast komma åt kolumnerna som är relaterade till kunden, men inte den känsliga CreditCard kolumnen:

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

Frågor som körs som charlie@contoso.com kommer att misslyckas om de innehåller CreditCard kolumnen:

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

Gå vidare