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