Share via


Implementare la sicurezza a livello di riga nel data warehousing di Microsoft Fabric

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

La sicurezza a livello di riga in Fabric Warehouse e l'endpoint di analisi SQL consentono di controllare l'accesso alle righe in una tabella di database in base ai ruoli utente e ai predicati. Per altre informazioni, vedere Sicurezza a livello di riga in Infrastruttura di data warehousing.

Questa guida illustra i passaggi per implementare la sicurezza a livello di riga in Microsoft Fabric Warehouse o endpoint di analisi SQL.

Prerequisiti

Prima di iniziare, assicurarsi di disporre dei seguenti elementi:

  1. Un'area di lavoro infrastruttura con capacità attiva o capacità di valutazione.
  2. Un endpoint di analisi di Fabric Warehouse o SQL in un Lakehouse.
  3. Diritti di Amministrazione istrator, membro o collaboratore per l'area di lavoro oppure autorizzazioni elevate per l'endpoint di analisi warehouse o SQL.

1. Connettersi

  1. Accedere usando un account con accesso con privilegi elevati nell'endpoint di analisi warehouse o SQL. (ruolo di Amministrazione/membro/collaboratore nell'area di lavoro o autorizzazioni di controllo per l'endpoint di analisi warehouse o SQL).
  2. Aprire l'area di lavoro Infrastruttura e passare all'endpoint di analisi warehouse o SQL in cui si vuole applicare la sicurezza a livello di riga.

2. Definire i criteri di sicurezza

  1. Determinare i ruoli e i predicati da usare per controllare l'accesso ai dati. I ruoli definiscono chi può accedere ai dati e i predicati definiscono i criteri per l'accesso.

  2. Creare predicati di sicurezza. I predicati di sicurezza sono condizioni che determinano le righe a cui un utente può accedere. È possibile creare predicati di sicurezza come funzioni con valori di tabella inline. Questo semplice esercizio presuppone che nella tabella UserName_columndati sia presente una colonna contenente il nome utente pertinente, popolato dalla funzione di sistema U edizione StandardR_NAME().

    -- Creating schema for Security
    CREATE SCHEMA Security;
    GO
    
    -- Creating a function for the SalesRep evaluation
    CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50))
        RETURNS TABLE
    WITH SCHEMABINDING
    AS
        RETURN SELECT 1 AS tvf_securitypredicate_result
    WHERE @UserName = USER_NAME();
    GO
    
    -- Using the function to create a Security Policy
    CREATE SECURITY POLICY YourSecurityPolicy
    ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column)
    ON sampleschema.sampletable
    WITH (STATE = ON);
    GO 
    
  3. Sostituire YourSecurityPolicy con il nome del criterio, tvf_securitypredicate con il nome della funzione predicato, sampleschema con il nome dello schema e sampletable con il nome della tabella di destinazione.

  4. Sostituire UserName_column con una colonna nella tabella che contiene nomi utente.

  5. Sostituire WHERE @UserName = USER_NAME(); con una WHERE clausola corrispondente al filtro di sicurezza basato su predicato desiderato. Ad esempio, questo filtra i dati in cui la UserName colonna, mappata al @UserName parametro, corrisponde al risultato della funzione di sistema U edizione StandardR_NAME().

  6. Ripetere questi passaggi per creare criteri di sicurezza per altre tabelle, se necessario.

3. Testare la sicurezza a livello di riga

  1. Accedere a Fabric come utente membro di un ruolo con un criterio di sicurezza associato. Usare la query seguente per verificare il valore che deve essere confrontato nella tabella.

    SELECT USER_NAME() 
    
  2. Eseguire una query sulle tabelle di database per verificare che la sicurezza a livello di riga funzioni come previsto. Gli utenti devono visualizzare solo i dati che soddisfano il predicato di sicurezza definito nel proprio ruolo. Ad esempio:

    SELECT * FROM sampleschema.sampletable
    
  3. Risultati filtrati simili per l'utente verranno filtrati con altre applicazioni che usano l'autenticazione di Microsoft Entra per l'accesso al database.

4. Monitorare e mantenere la sicurezza a livello di riga

Monitorare e aggiornare regolarmente i criteri di sicurezza a livello di riga man mano che i requisiti di sicurezza si evolvono. Tenere traccia delle assegnazioni di ruolo e assicurarsi che gli utenti abbiano l'accesso appropriato.