Condividi tramite


Sicurezza a livello di colonna nell'archiviazione dati di Fabric

Si applica a:✅ endpoint di Analisi SQL e Warehouse in Microsoft Fabric

La sicurezza a livello di colonna semplifica la progettazione e la codifica della sicurezza nell'applicazione, consentendo di limitare l'accesso alle colonne per proteggere i dati sensibili. Assicurando, ad esempio, che utenti specifici possano accedere solo determinate colonne di una tabella relative al loro reparto.

Sicurezza a livello di colonna a livello di dati

La logica di restrizione dell'accesso si trova sul livello del database e non in un singolo livello applicazione. Il database applica le restrizioni di accesso a ogni tentativo di accesso ai dati da qualsiasi applicazione o piattaforma di reporting, inclusa Power BI. Questa restrizione rende la sicurezza più affidabile e solida, grazie alla riduzione della superficie di attacco del sistema di sicurezza generale.

La sicurezza a livello di colonna si applica solo alle query in un endpoint di analisi SQL o Warehouse in Fabric. Le query di Power BI in un magazzino in modalità Direct Lake eseguiranno il fallback alla modalità Direct Query per rispettare la sicurezza a livello di colonna.

Limitare l'accesso a determinate colonne a determinati utenti

Inoltre, la sicurezza a livello di colonna è più semplice rispetto alla progettazione di visualizzazioni aggiuntive per filtrare le colonne per imporre restrizioni di accesso agli utenti.

È possibile implementare la sicurezza a livello di colonna con l'istruzione T-SQL GRANT. Per semplicità di gestione, è preferibile assegnare autorizzazioni ai ruoli anziché ai singoli individui.

La sicurezza a livello di colonna viene applicata al warehouse condiviso o al lakehouse a cui si accede tramite un endpoint di analisi SQL, perché l'origine dati sottostante non è stata modificata.

È supportata solo l'autenticazione di Microsoft Entra. Per altre informazioni, vedere Autenticazione di Microsoft Entra come alternativa all'autenticazione SQL di Microsoft Fabric.

Esempi

Questo esempio creerà una tabella e limiterà le colonne che charlie@contoso.com può visualizzare nella customers tabella.

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);

Charlie potrà accedere solo alle colonne correlate al cliente, ma non alla colonna sensibile CreditCard:

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

Le query eseguite come charlie@contoso.com avranno esito negativo se includono la colonna 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'.

Passaggio successivo