Condividi tramite


Sicurezza a livello di riga con Power BI

La sicurezza a livello di riga con Power BI può essere usata per limitare l'accesso ai dati per determinati utenti. I filtri limitano l'accesso ai dati a livello di riga ed è possibile definire filtri all'interno dei ruoli. Nel servizio Power BI, gli utenti con accesso a un'area di lavoro hanno accesso a modelli semantici in tale area di lavoro. La sicurezza a livello di riga limita solo l'accesso ai dati per gli utenti con autorizzazioni Visualizzatore. Non si applica agli amministratori, ai membri o ai collaboratori.

È possibile configurare la sicurezza a livello di riga per i modelli di dati importati in Power BI con Power BI. È anche possibile configurare la sicurezza a livello di riga nei modelli semantici che usano DirectQuery, ad esempio SQL Server. Per le connessioni dinamiche di Analysis Services o Azure Analysis Services, è possibile configurare la sicurezza a livello di riga nel modello, non in Power BI. L'opzione di sicurezza non viene visualizzata per i modelli semantici di connessione dinamica.

Definire i ruoli e le regole in Power BI Desktop

È possibile definire i ruoli e le regole in Power BI Desktop. Con questo editor è possibile passare dall'interfaccia a discesa predefinita a un'interfaccia DAX e viceversa. Quando si esegue la pubblicazione in Power BI, verranno pubblicate anche le definizioni dei ruoli.

Per definire i ruoli di sicurezza:

  1. Importare dati nel report di Power BI Desktop o configurare una connessione DirectQuery.

    Nota

    Non è possibile definire i ruoli in Power BI Desktop per connessioni dinamiche di Analysis Services. È necessario eseguire questa operazione nel modello di Analysis Services.

  2. Dalla scheda Creazione di modelli selezionare Gestisci ruoli.

    Screenshot della scheda Creazione di modelli con l'opzione Gestisci ruoli evidenziata.

  3. Nella finestra Gestisci ruoli selezionare Nuovo per creare un nuovo ruolo.

    Screenshot della finestra Gestisci ruoli con il pulsante Crea nuovo ruolo evidenziato.

  4. In Ruoli specificare un nome per il ruolo e premere INVIO.

    Screenshot della finestra Gestisci ruoli con l'opzione Rinomina ruolo evidenziata.

    Nota

    Non è possibile definire un ruolo con una virgola, ad esempio London,ParisRole.

  5. In Seleziona tabelle selezionare la tabella a cui si vuole applicare un filtro di sicurezza a livello di riga.

  6. In Filtra dati usare l'editor predefinito per definire i ruoli. Le espressioni create restituiscono un valore true o false.

    Screenshot dell'editor predefinito della finestra Gestisci ruoli per la definizione della sicurezza a livello di riga.

    Nota

    Non tutti i filtri di sicurezza a livello di riga supportati in Power BI possono essere definiti usando l'editor predefinito. Tra le limitazioni sono incluse espressioni che attualmente possono essere definite solo tramite DAX, comprese le regole dinamiche, ad esempio username() o userprincipalname(). Per definire i ruoli usando questi filtri passare all'editor DAX.

  7. Facoltativamente, selezionare Passa all'editor DAX per passare all'uso dell'editor DAX per definire il ruolo. Le espressioni DAX restituiscono un valore true o false. Ad esempio: [Entity ID] = “Value”. L'editor DAX include il completamento automatico per le formule (IntelliSense). È possibile selezionare il segno di spunta sopra la casella dell'espressione per convalidare l'espressione e il pulsante X sopra la casella dell'espressione per ripristinare le modifiche.

    Screenshot della finestra Gestisci ruoli con un'espressione DAX di esempio evidenziata.

    Nota

    È possibile usare username() in questa espressione. Si noti che username() ha il formato DOMINIO\nomeutente in Power BI Desktop. Nel servizio Power BI e nel server di report di Power BI ha il formato del Nome entità utente (UPN) dell'utente stesso. Inoltre, in questa casella dell'espressione si usano le virgole per separare gli argomenti della funzione DAX anche se si usano impostazioni locali che in genere prevedono il separatore punto e virgola (ad esempio italiano o tedesco).

  8. È possibile tornare all'editor predefinito selezionando Passa all'editor predefinito. Tutte le modifiche apportate in entrambe le interfacce dell'editor vengono salvate in modo permanente passando da un'interfaccia all'altra, ove possibile. Quando nell'editor DAX si definisce un ruolo che non può essere definito nell'editor predefinito, se si tenta di passare all'editor predefinito verrà visualizzato un avviso che indica che il cambio di editor potrebbe causare la perdita di alcune informazioni. Per mantenere queste informazioni, selezionare Annulla e continuare a modificare questo ruolo solo nell'editor DAX.

    Screenshot della finestra di dialogo per confermare il passaggio all'editor predefinito.

    Nota

    In questa casella dell'espressione, usare le virgole per separare gli argomenti della funzione DAX anche se si usano impostazioni locali che in genere prevedono il separatore punto e virgola (ad esempio italiano o tedesco).

  9. Seleziona Salva.

Non è possibile assegnare gli utenti a un ruolo in Power BI Desktop. È necessario assegnarli nel servizio Power BI. È possibile abilitare la sicurezza dinamica in Power BI Desktop usando le funzioni DAX username() o userprincipalname() e configurando le relazioni appropriate.

Per impostazione predefinita, i filtri per la sicurezza a livello di riga usano i filtri unidirezionali, indipendentemente dal fatto che le relazioni siano unidirezionali o bidirezionali. È possibile abilitare manualmente il filtro incrociato bidirezionale con sicurezza a livello di riga selezionando la relazione e quindi la casella di controllo Applica filtro di sicurezza in entrambe le direzioni. Notare che se una tabella fa parte di più relazioni bidirezionali, è possibile selezionare questa opzione solo per una di queste relazioni. Selezionare questa opzione se è stata implementata anche la sicurezza a livello di riga dinamica a livello di server, in cui la sicurezza a livello di riga si basa sul nome utente o sull'ID di accesso.

Per altre informazioni, vedere Filtro incrociato bidirezionale con DirectQuery in Power BI e l'articolo tecnico Protezione del modello semantico tabulare di BI.

Screenshot dell'impostazione della relazione del modello, per applicare il filtro di sicurezza in entrambe le direzioni.

Gestire la sicurezza nel modello

Per gestire la sicurezza nel modello semantico, aprire l'area di lavoro in cui è stato salvato il modello semantico nel servizio Fabric e seguire questa procedura:

  1. In Fabric selezionare il menu Altre opzioni per un modello semantico. Questo menu viene visualizzato quando si passa il puntatore su un nome di modello semantico.

    Screenshot che mostra il menu Altre opzioni nel menu di spostamento.

  2. Seleziona Sicurezza.

    Screenshot che mostra il menu Altre opzioni con l'opzione Sicurezza selezionata.

Sicurezza consente di visualizzare la pagina Sicurezza a livello di ruolo in cui si aggiungono membri a un ruolo creato. Il collaboratore (e i ruoli dell'area di lavoro superiori) vedranno Sicurezza e potranno assegnare gli utenti a un ruolo.

Utilizzo dei membri

Aggiungere membri

Nel servizio Power BI, è possibile aggiungere un membro al ruolo digitando l'indirizzo di posta elettronica o il nome dell'utente o del gruppo di sicurezza. Non è possibile aggiungere gruppi creati in Power BI. È possibile aggiungere membri esterni all'organizzazione.

Per configurare la sicurezza a livello di riga, è possibile usare i gruppi seguenti.

Si noti che i gruppi di Microsoft 365 non sono supportati e non possono essere aggiunti ad alcun ruolo.

Screenshot che mostra come aggiungere un membro.

È anche possibile stabilire il numero di membri che fanno parte del ruolo in base al numero indicato tra parentesi accanto al nome del ruolo o accanto a Membri.

Screenshot che mostra i membri nel ruolo.

Rimuovere membri

È possibile rimuovere i membri selezionando l'icona X accanto al nome.

Screenshot che mostra come rimuovere un membro.

Convalida del ruolo all'interno del servizio Power BI

È possibile verificare che il ruolo definito funzioni correttamente nel servizio Power BI testando il ruolo.

  1. Selezionare Altre opzioni (...) accanto al ruolo.
  2. Selezionare Testa come ruolo.

Screenshot dell'opzione Testa come ruolo.

Si verrà reindirizzati al report pubblicato da Power BI Desktop con questo modello semantico, se esistente. I dashboard non sono disponibili per test tramite l'opzione Testa come ruolo.

Nell'intestazione di pagina viene visualizzato il ruolo applicato. Testare altri ruoli, una combinazione di ruoli o una persona specifica selezionando Ora visualizzato come. Qui vengono visualizzati dettagli importanti sulle autorizzazioni relative alla persona o al ruolo sottoposto a test. Per altre informazioni sull'interazione delle autorizzazioni con la sicurezza a livello di riga, vedere Esperienza RLS.

Screenshot dell'elenco a discesa Ora visualizzato come per una persona specifica.

Testare altri report connessi al modello semantico selezionando Visualizzazione nell'intestazione della pagina. È possibile testare solo i report che si trovano nella stessa area di lavoro del modello semantico.

Screenshot di Visualizzazione per selezionare un report diverso da testare.

Per tornare alla visualizzazione normale, selezionare Torna alla sicurezza a livello di riga.

Nota

La funzionalità Testa come ruoli non funziona per i modelli DirectQuery con accesso Single Sign-On (SSO) abilitato. Inoltre, non tutti gli aspetti di un report possono essere convalidati nella funzionalità Testa come ruolo, incluse le visualizzazioni Q&A, le visualizzazioni informazioni rapide e Copilot.

Uso della funzione DAX username() o userprincipalname()

È possibile sfruttare la funzione DAX username() o userprincipalname() all'interno del set di dati. Queste funzioni possono essere usate all'interno di espressioni in Power BI Desktop. Quando si pubblica il modello, verrà usata all'interno del servizio Power BI.

All'interno di Power BI Desktop, username() restituirà un utente nel formato DOMINIO\utente, mentre userprincipalname() restituirà un utente nel formato user@contoso.com.

All'interno del servizio Power BI, username() e userprincipalname() restituiranno il nome dell'entità utente (UPN, User Principal Name). simile a un indirizzo di posta elettronica.

Usare la sicurezza a livello di riga con le aree di lavoro in Power BI

Se si pubblica il report di Power BI Desktop in un'area di lavoro nel servizio Power BI, i ruoli della sicurezza a livello di riga vengono applicati ai membri assegnati al ruolo Visualizzatore nell'area di lavoro. Anche se ai Visualizzatori vengono concesse autorizzazioni di compilazione per il modello semantico, la sicurezza a livello di riga viene comunque applicata. Ad esempio, se i visualizzatori con autorizzazioni di compilazione usano Analizza in Excel, la loro visualizzazione dei dati è limitata dalla sicurezza a livello di riga. I membri dell'area di lavoro assegnati ai ruoli di Amministratore, Membro o Contributore dispongono dell'autorizzazione di modifica per il modello semantico e, pertanto, la sicurezza a livello di riga non li riguarda. Se si vuole che la sicurezza a livello di riga venga applicata alle persone in un'area di lavoro, è possibile assegnare loro solo il ruolo Visualizzatore. Altre informazioni sui ruoli nelle aree di lavoro.

Considerazioni e limitazioni

È possibile visualizzare le limitazioni correnti per la sicurezza a livello di riga nei modelli cloud qui:

  • Se in precedenza sono stati definiti ruoli e regole nel servizio Power BI, sarà necessario crearli di nuovo in Power BI Desktop.
  • È possibile definire la sicurezza a livello di riga solo nei modelli semantici creati con Power BI Desktop. Se si vuole abilitare la sicurezza a livello di riga per i modelli semantici creati con Excel, è prima di tutto necessario convertire i file in file di Power BI Desktop (con estensione pbix). Altre informazioni.
  • Non è possibile aggiungere entità servizio a un ruolo di sicurezza a livello di riga. Di conseguenza, la sicurezza a livello di riga non verrà applicata per le app che usano un'entità servizio come identità effettiva finale.
  • Sono supportate solo le connessioni di importazione e DirectQuery. Le connessioni dinamiche ad Analysis Services vengono gestite nel modello locale.
  • La funzionalità Test come ruolo/Visualizza come ruoli non funziona per i modelli DirectQuery con accesso Single Sign-On (SSO) abilitato.
  • La funzionalità Test come ruolo/visualizzazione come ruolo mostra solo i report dell'area di lavoro dei modelli semantici.
  • La funzionalità Test come ruolo/Visualizza come ruolo non funziona per i report impaginati.

Tenere presente che se un report di Power BI fa riferimento a una riga con sicurezza a livello di riga configurata, verrà visualizzato lo stesso messaggio che per un campo eliminato o non esistente. Per questi utenti, sembra che il report sia malfunzionante.

Domande frequenti

Domanda: Cosa accade se sono stati precedentemente creati ruoli e regole per un set di dati nel servizio Power BI? Continueranno a funzionare anche se non si esegue alcuna operazione?
Risposta: No, gli oggetti visivi non verranno visualizzati correttamente. È necessario ricreare i ruoli e le regole in Power BI Desktop e quindi pubblicarli nel servizio Power BI.

Domanda: È possibile creare questi ruoli per le origini dati di Analysis Services?
Risposta: Sì, è possibile solo se i dati sono stati importati in Power BI Desktop. Se si usa una connessione dinamica, non è possibile configurare la sicurezza a livello di riga all'interno del servizio Power BI. La sicurezza a livello di riga viene definita nel modello di Analysis Services in locale.

Domanda: È possibile usare la sicurezza a livello di riga per limitare le colonne o le misure accessibili agli utenti?
Risposta: No, se un utente può accedere a una riga specifica di dati, può visualizzare tutte le colonne di dati per tale riga. Per limitare l'accesso alle colonne e ai metadati delle colonne, è consigliabile usare la sicurezza a livello di oggetto.

Domanda: La sicurezza a livello di riga consente di nascondere i dati dettagliati ma di concedere l'accesso ai dati riepilogati in oggetti visivi?
Risposta: No. È possibile proteggere singole righe di dati, ma gli utenti possono visualizzare sempre i dettagli o i dati riepilogati.

Domanda: Per l'origine dati sono già stati definiti ruoli di sicurezza, ad esempio ruoli di SQL Server o ruoli di SAP BW. Qual è la relazione tra questi ruoli e la sicurezza a livello di riga?
Risposta: La risposta varia a seconda che i dati vengano importati o che si usi DirectQuery. Se si importano i dati nel set di dati Power BI, i ruoli di sicurezza nell'origine dati non vengono usati. In questo caso, è necessario definire la sicurezza a livello di riga per applicare regole di sicurezza per gli utenti che si connettono in Power BI. Se si usa DirectQuery, i ruoli di sicurezza nell'origine dati vengono usati. Quando un utente apre un report di Power BI invia una query all'origine dati sottostante, che applica le regole di sicurezza ai dati in base alle credenziali dell'utente.

Domanda: un utente può appartenere a più ruoli?
Risposta: un utente può appartenere a più ruoli e i ruoli possono essere sommati. Ad esempio, se un utente appartiene ai ruoli "Vendite" e "Marketing", può visualizzare i dati per entrambi questi ruoli.

Domande? Provare a rivolgersi alla community di Power BI per suggerimenti. Contribuire con idee per migliorare Power BI