Come proteggere un lakehouse per Archiviazione dati team

Introduzione

In questo articolo viene fornita una panoramica di come configurare la sicurezza per una lakehouse in Fabric per l'uso con utenti SQL con query T-SQL. Questi utenti possono essere analisti aziendali che usano dati tramite SQL, generatori di report o data engineer che creano nuove tabelle e viste.

Funzionalità di sicurezza

Microsoft Fabric usa un modello di sicurezza a più livelli con controlli diversi disponibili a diversi livelli per fornire solo le autorizzazioni minime necessarie. Per altre informazioni sulle diverse funzionalità di sicurezza disponibili in Fabric, vedere Data Controllo di accesso Model in OneLake.

Nel carico di lavoro Synapse Data Warehouse, gli elementi dell'endpoint di analisi SQL e warehouse consentono anche la definizione della sicurezza SQL nativa. La sicurezza SQL usa la libreria completa di costrutti di sicurezza T-SQL per consentire il controllo granulare dell'accesso di tabelle, viste, righe e colonne all'interno di un elemento. Per altre informazioni sulla sicurezza di SQL, vedere Autorizzazioni granulari di SQL.

Le autorizzazioni SQL configurate nel warehouse o nell'endpoint di analisi SQL si applicano solo alle query eseguite sul warehouse o sull'endpoint di analisi SQL. I dati sottostanti si trovano in OneLake, ma l'accesso ai dati di OneLake viene controllato separatamente tramite i ruoli di accesso ai dati di OneLake. Per assicurarsi che gli utenti con autorizzazioni specifiche di SQL non visualizzino i dati a cui non hanno accesso SQL, non includere tali utenti in un ruolo di accesso ai dati OneLake.

Proteggere in base al caso d'uso

La sicurezza in Microsoft Fabric è ottimizzata per la protezione dei dati per casi d'uso specifici. Un caso d'uso è un set di utenti che richiedono un accesso specifico e l'accesso ai dati tramite un determinato motore. Per gli scenari SQL, alcuni casi d'uso comuni sono:

  • Writer SQL: utenti che devono creare nuove tabelle, visualizzare o scrivere dati in tabelle esistenti.
  • Lettori SQL: utenti che devono leggere i dati usando query SQL. Potrebbero accedere alla connessione SQL direttamente o tramite un altro servizio, ad esempio Power BI.

È quindi possibile allineare ogni caso d'uso con le autorizzazioni necessarie in Fabric.

Accesso in scrittura SQL

È possibile concedere a un utente l'accesso in scrittura a un endpoint di analisi SQL o warehouse in due modi:

  • Tramite i ruoli dell'area di lavoro infrastruttura è possibile concedere l'appartenenza a tre ruoli dell'area di lavoro che concedono autorizzazioni di scrittura. Ogni ruolo viene convertito automaticamente in un ruolo corrispondente in SQL che concede l'accesso in scrittura equivalente.
  • Concedere l'accesso in lettura al motore SQL e concedere autorizzazioni SQL personalizzate per scrivere in alcuni o tutti i dati.

Se un utente deve accedere in scrittura a tutti i warehouse o agli endpoint di analisi SQL in un'area di lavoro, assegnarli a un ruolo dell'area di lavoro. A meno che un utente non debba assegnare altri utenti ai ruoli dell'area di lavoro, è necessario usare il ruolo Collaboratore.

Se un utente deve scrivere solo in warehouse specifici o analisi SQL, concedere loro l'accesso diretto tramite le autorizzazioni SQL.

Accesso in lettura SQL

È possibile concedere a un utente l'accesso in lettura a un warehouse o a un endpoint di analisi SQL in due modi:

  • Concedere l'accesso in lettura tramite l'autorizzazione ReadData, concessa come parte dei ruoli dell'area di lavoro infrastruttura. Tutti e quattro i ruoli dell'area di lavoro concedono l'autorizzazione ReadData.
  • Concedere l'accesso in lettura al motore SQL e concedere autorizzazioni SQL personalizzate per la lettura ad alcuni o a tutti i dati.

Se un utente è membro di un ruolo dell'area di lavoro infrastruttura, viene concessa l'autorizzazione ReadData. L'autorizzazione ReadData esegue il mapping dell'utente a un ruolo SQL che concede autorizzazioni SELECT a tutte le tabelle del warehouse o del lakehouse. Questa autorizzazione è utile se un utente deve visualizzare tutti o la maggior parte dei dati nel lakehouse o nel magazzino. Tutte le autorizzazioni SQL DENY impostate in un determinato lakehouse o warehouse applicano e limitano l'accesso alle tabelle. Inoltre, la sicurezza a livello di riga e colonna può essere impostata sulle tabelle per limitare l'accesso a un livello granulare.

Se un utente deve accedere solo a un lakehouse o a un magazzino specifico, la funzionalità di condivisione fornisce l'accesso solo all'elemento condiviso. Durante la condivisione, gli utenti possono scegliere di concedere solo l'autorizzazione lettura o Read + ReadData. La concessione dell'autorizzazione di lettura consente all'utente di connettersi al warehouse o all'endpoint di analisi SQL, ma non concede l'accesso alle tabelle. Concedere agli utenti le autorizzazioni ReadData concede loro l'accesso in lettura completo a tutte le tabelle nel warehouse o nell'endpoint di analisi SQL. In entrambi i casi, è possibile configurare una sicurezza SQL aggiuntiva per concedere o negare l'accesso a tabelle specifiche. Questa sicurezza SQL può includere un controllo di accesso granulare, ad esempio la sicurezza a livello di riga o colonna.

Usare con i tasti di scelta rapida

I collegamenti sono una funzionalità di OneLake che consente di fare riferimento ai dati da un'unica posizione senza copiare fisicamente i dati. I tasti di scelta rapida sono uno strumento potente che consente di riutilizzare facilmente i dati di una lakehouse in altre posizioni senza creare copie duplicate dei dati.

I warehouse in Fabric non supportano i collegamenti. Tuttavia, esiste un comportamento speciale per il modo in cui l'endpoint di analisi SQL per un lakehouse interagisce con i collegamenti.

Tutti i collegamenti in un lakehouse sono accessibili in modalità delegata durante l'esecuzione di query tramite l'endpoint di analisi SQL. L'identità delegata è l'utente di Fabric proprietario del lakehouse. Per impostazione predefinita, il proprietario è l'utente che ha creato il lakehouse e l'endpoint di analisi SQL. Il proprietario può essere modificato nei casi selezionati e il proprietario corrente viene visualizzato nella colonna Proprietario in Infrastruttura quando si visualizza l'elemento nell'elenco di elementi dell'area di lavoro. Il comportamento delegato indica che un utente che esegue query è in grado di leggere dalle tabelle di scelta rapida se il proprietario ha accesso ai dati sottostanti, non all'utente che esegue la query. L'utente che esegue query deve accedere solo per selezionare dalla tabella di scelta rapida.

Nota

Ad esempio, UserA è il proprietario di un lakehouse e UserB esegue una query su una tabella che rappresenta un collegamento. UserB deve prima avere accesso in lettura alla tabella, tramite ReadData o tramite le autorizzazioni SQL. Per visualizzare i dati, la query controlla quindi se UserA ha accesso al collegamento. Se UserA ha accesso, UserB visualizzerà i risultati della query. Se UserA non ha accesso, la query avrà esito negativo.

Per i lakehouse che usano la funzionalità di accesso ai dati OneLake, l'accesso a un collegamento è determinato dal fatto che il proprietario dell'endpoint di analisi SQL abbia accesso per visualizzare il lakehouse di destinazione e leggere la tabella tramite un ruolo di accesso ai dati OneLake.

Per i lakehouse che non usano ancora la funzionalità dei ruoli di accesso ai dati OneLake, l'accesso rapido viene determinato dal fatto che il proprietario dell'endpoint di analisi SQL disponga dell'autorizzazione Lettura e LetturaTutte per il percorso di destinazione.