Autorizzazioni granulari di SQL in Microsoft Fabric

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

Quando le autorizzazioni predefinite dell'assegnazione di ruolo o dell'elemento dell'area di lavoro non offrono il livello di controllo necessario, usare costrutti SQL standard in un endpoint di analisi SQL o di un Fabric warehouse per il controllo di accesso più dettagliato.

Per l'endpoint di analisi SQL e il Warehouse in Microsoft Fabric:

  • Gestire la sicurezza a livello di oggetto con le istruzioni GRANT, REVOKE e DENY T-SQL.
  • Assegnare utenti a ruoli SQL, sia ruoli del database personalizzati che ruoli predefiniti del database.

Configurare le autorizzazioni granulari dell'utente in un Fabric warehouse

  • Per consentire a un utente di connettersi a un Fabric warehouse o a un endpoint di analisi SQL, è necessario assegnarli a un ruolo dell'area di lavoro o concedere loro l'autorizzazione lettura dell'elemento. Se non si dispone almeno di un’autorizzazione di Lettura, la connessione non riuscirà.
  • Per configurare le autorizzazioni granulari di un utente prima di connettersi al warehouse, definire prima le autorizzazioni in SQL. Quindi concedi loro l'accesso assegnando un ruolo dell'area di lavoro o concedendo le autorizzazioni dell'elemento.

Limitazione di CREATE USER

  • Non è possibile eseguire CREATE USER in modo esplicito in un Fabric warehouse o in un endpoint di analisi SQL. Quando si esegue GRANT o DENY, Fabric crea automaticamente l'utente del database. L'utente non può connettersi finché non dispone anche di diritti sufficienti a livello di area di lavoro.

Visualizza le mie autorizzazioni

Dopo che un utente si connette a un Fabric warehouse o a un endpoint di analisi SQL tramite il stringa di connessione SQL, può visualizzare le autorizzazioni disponibili usando la funzione sys.fn_my_permissions.

Autorizzazioni a livello di database per l'utente corrente:

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

Autorizzazioni con ambito schema per l'utente corrente:

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

Autorizzazioni con ambito oggetto per l'utente corrente:

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

Visualizzare le autorizzazioni concesse in modo esplicito agli utenti in un data warehouse di Fabric

Quando si è connessi a un Fabric warehouse o a un endpoint di analisi SQL tramite il stringa di connessione SQL, un utente con autorizzazioni elevate può eseguire query sulle autorizzazioni concesse usando le viste di sistema. Questa query non restituisce le autorizzazioni ricevute dagli utenti tramite un ruolo o un elemento dell'area di lavoro Fabric.

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 in un data warehouse Fabric

Nell'endpoint di analisi Warehouse e SQL è possibile limitare l'accesso a colonne specifiche e a righe specifiche di una tabella e mascherare i dati sensibili da non amministratori.