Share via


Sicurezza a livello di colonna nel data warehousing 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 nel livello di database, non in un singolo livello applicazione. Il database applica le restrizioni di accesso ogni volta che si tenta l'accesso ai dati da qualsiasi applicazione o piattaforma di creazione di report, incluso 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 warehouse 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 e che progettare visualizzazioni aggiuntive per filtrare le colonne per imporre restrizioni di accesso agli utenti.

Implementare la sicurezza a livello di colonna con l'istruzione GRANT T-SQL. Per semplicità di gestione, l'assegnazione di autorizzazioni ai ruoli è preferibile per l'uso di utenti singoli.

La sicurezza a livello di colonna viene applicata al warehouse condiviso o al lakehouse, perché l'origine dati sottostante non è stata modificata.

È supportata solo l'autenticazione di Microsoft Entra.

Esempi

Questo esempio creerà una tabella e limiterà le colonne che charlie@contoso.com possono essere visualizzate 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);

Si consentirà a Charlie di 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 CreditCard colonna :

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