Autorizzazioni granulari di SQL in Microsoft Fabric

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

Quando le autorizzazioni predefinite fornite dall'assegnazione di ruoli dell'area di lavoro o concesse tramite autorizzazioni relative all’elemento non sono sufficienti, sono disponibili costrutti SQL standard per un controllo più granulare.

Per endpoint di analisi SQL e Warehouse:

  • La sicurezza a livello di oggetto può essere gestita usando la sintassi T-SQL CONCEDI, REVOCA e NEGA.
  • Gli utenti possono essere assegnati a ruoli SQL, sia ruoli del database personalizzati che predefiniti.

Autorizzazioni utente granulari

  • Perché un utente possa connettersi al database, deve essere assegnato a un ruolo Area di lavoro o all'elemento autorizzazione di Lettura. Se non si dispone almeno di un’autorizzazione di Lettura, la connessione non riuscirà.
  • Se si desidera configurare le autorizzazioni granulari di un utente prima di consentirgli di connettersi al warehouse, è possibile configurare le autorizzazioni all'interno di SQL. È quindi possibile concedere l'accesso all’utente assegnandolo a un ruolo Area di lavoro o concedendogli autorizzazioni relative all’elemento.

Limiti

  • Non è attualmente possibile eseguire CREATE USER in modo esplicito. Quando si esegue CONCEDI o NEGA, l'utente viene creato automaticamente. L'utente non sarà in grado di connettersi finché non gli verranno concessi diritti sufficienti a livello di area di lavoro.

Visualizza le mie autorizzazioni

Quando un utente si connette alla stringa di connessione SQL, può visualizzare le autorizzazioni disponibili usando la funzione sys.fn_my_permissions.

Autorizzazioni con ambito database dell'utente:

SELECT *
FROM sys.fn_my_permissions(NULL, 'Database');

Autorizzazioni con ambito schema dell'utente:

SELECT *
FROM sys.fn_my_permissions('<schema-name>', 'Schema');

Autorizzazioni con ambito oggetto dell'utente:

SELECT *
FROM sys.fn_my_permissions('<schema-name>.<object-name>', 'Object');

Visualizzare le autorizzazioni concesse in modo esplicito a utenti

Quando connesso tramite il stringa di connessione SQL, un utente con autorizzazioni elevate può eseguire query sulle autorizzazioni concesse usando le visualizzazioni di sistema. Ciò non mostra gli utenti o le autorizzazioni utente concesse agli utenti assegnandole a ruoli dell'area di lavoro o ad autorizzazioni relative all’elemento.

SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc, 
 pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe
 ON pe.grantee_principal_id = pr.principal_id;

Funzionalità di protezione dei dati

È possibile assicurare filtri di colonna e filtri di riga basati su predicato nelle tabelle in Warehouse o endpoint di Analisi SQL a ruoli e utenti in Microsoft Fabric. È anche possibile mascherare i dati sensibili da utenti non amministratori usando il Dynamic Data Masking.