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 gli utenti specificati. I filtri limitano l'accesso ai dati a livello di riga ed è possibile definire filtri all'interno dei ruoli. Nell'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 a Amministrazione, membri o 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 attive di Analysis Services o Azure Analysis Services, 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 in tempo reale.

Definire ruoli e regole in Power BI Desktop

È possibile definire ruoli e regole in Power BI Desktop. Quando si pubblica in Power BI, si pubblicano anche le definizioni di ruolo.

Per definire i ruoli di sicurezza:

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

    Nota

    Non è possibile definire ruoli all'interno di Power BI Desktop per le connessioni dinamiche di Analysis Services. È necessario eseguire questa operazione all'interno del modello di Analysis Services.

  2. Nella scheda Modellazione selezionare Gestisci ruoli.

    Screenshot della scheda Modellazione, evidenziando Gestisci ruoli.

  3. Nella finestra Gestisci ruoli selezionare Crea.

    Screenshot della finestra Gestisci ruoli, evidenziando Crea.

  4. In Ruoli specificare un nome per il ruolo.

    Nota

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

  5. In Tabelle selezionare la tabella a cui applicare una regola DAX (Data Analysis Expression).

  6. Nella casella Espressione DAX filtro tabella immettere le espressioni DAX. Questa espressione restituisce un valore true o false. Ad esempio: [Entity ID] = “Value”.

    Screenshot della finestra Gestisci ruoli, evidenziando un'espressione DAX di esempio.

    Nota

    È possibile usare username() all'interno di questa espressione. Tenere presente che username() ha il formato DOMAIN\username in Power BI Desktop. All'interno del servizio Power BI e Server di report di Power BI, è nel formato del nome dell'entità utente (UPN) dell'utente. In alternativa, è possibile usare userprincipalname(), che restituisce sempre l'utente nel formato del nome dell'entità utente, username@contoso.com.

  7. Dopo aver creato l'espressione DAX, selezionare il segno di spunta sopra la casella dell'espressione per convalidare l'espressione.

    Screenshot della finestra Espressione DAX del filtro tabella con il segno di spunta evidenziato.

    Nota

    In questa casella di espressione usare le virgole per separare gli argomenti della funzione DAX anche se si usano impostazioni locali che in genere usano separatori di punto e virgola ,ad esempio francese o tedesco.

  8. Seleziona Salva.

Non è possibile assegnare utenti a un ruolo in Power BI Desktop. Le si assegnano nel servizio Power BI. È possibile abilitare la sicurezza dinamica all'interno di Power BI Desktop usando le funzioni DAX username() o userprincipalname() e configurando le relazioni appropriate.

Per impostazione predefinita, il filtro di sicurezza a livello di riga usa filtri a direzione singola, indipendentemente dal fatto che le relazioni siano impostate su una singola direzione o bidirezionale. È possibile abilitare manualmente il filtro incrociato bidirezionale con la sicurezza a livello di riga selezionando la relazione e selezionando la casella di controllo Applica filtro di sicurezza in entrambe le direzioni . Si noti che se una tabella fa parte di più relazioni bidirezionali, è possibile selezionare questa opzione solo per una di queste relazioni. Selezionare questa opzione quando è stata implementata anche la sicurezza dinamica a livello di riga a livello di server, in cui la sicurezza a livello di riga è basata su nome utente o ID di accesso.

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

Screenshot dell'applicazione del filtro di sicurezza.

Definire ruoli e regole in Power BI usando l'editor di sicurezza a livello di riga avanzato (anteprima)

È possibile definire rapidamente e facilmente i ruoli e i filtri a livello di riga all'interno di Power BI usando l'editor di sicurezza a livello di riga avanzato. Con questo editor è possibile passare dall'interfaccia a discesa predefinita a un'interfaccia DAX. Quando si pubblica in Power BI, si pubblicano anche le definizioni di ruolo.

Per definire i ruoli di sicurezza usando l'editor di sicurezza avanzato a livello di riga:

  1. In Power BI Desktop abilitare l'anteprima passando a Opzioni file > e Impostazioni > Opzioni > funzionalità di anteprima e attivare "Editor di sicurezza a livello di riga avanzato". In alternativa, è possibile usare questo editor nel servizio modificando il modello di dati nel servizio Power BI.

  2. Importare dati nel modello semantico di Power BI o configurare una connessione DirectQuery.

  3. Nella barra multifunzione selezionare Gestisci ruoli.

    Screenshot del pulsante Gestisci ruoli nella barra multifunzione desktop.

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

    Screenshot della creazione di un nuovo ruolo nell'editor di sicurezza a livello di riga avanzato.

  5. In Ruoli specificare un nome per il ruolo e selezionare INVIO.

    Screenshot della ridenominazione di un ruolo nell'editor di sicurezza a livello di riga avanzato.

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

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

    Screenshot di un esempio dell'uso dell'editor predefinito nell'editor di sicurezza a livello di riga avanzato.

    Nota

    Non tutti i filtri di sicurezza a livello di riga supportati in Power BI possono essere definiti usando l'editor predefinito. Le limitazioni includono espressioni che oggi possono essere definite solo usando DAX, incluse regole dinamiche come username() o userprincipalname(). Per definire i ruoli usando questi filtri per usare l'editor DAX.

  8. Facoltativamente, selezionare Passa all'editor DAX per passare all'uso dell'editor DAX per definire il ruolo. È possibile tornare all'editor predefinito selezionando Passa all'editor predefinito. Tutte le modifiche apportate in entrambe le interfacce dell'editor vengono mantenute quando è possibile cambiare interfaccia.

    Screenshot di un esempio dell'uso dell'editor dax nell'editor di sicurezza a livello di riga avanzato.

    Quando si definisce un ruolo usando l'editor DAX 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 di una finestra di dialogo di errore di esempio quando si passa dall'editor DAX all'editor predefinito nell'editor di sicurezza a livello di riga avanzato.

  9. Seleziona Salva

Convalidare i ruoli in Power BI Desktop

Dopo aver creato i ruoli, testare i risultati dei ruoli in Power BI Desktop.

  1. Nella scheda Modellazione selezionare Visualizza come.

    Screenshot della scheda Modellazione, evidenziando Visualizza come.

    Viene visualizzata la finestra Visualizza come ruoli , in cui sono visualizzati i ruoli creati.

    Screenshot della finestra Visualizza come ruoli con l'opzione Nessuno selezionata.

  2. Selezionare un ruolo creato. Quindi scegliere OK per applicare il ruolo.

    Il report esegue il rendering dei dati rilevanti per tale ruolo.

  3. È anche possibile selezionare Altro utente e specificare un determinato utente.

    Screenshot della finestra Visualizza come ruoli con un utente di esempio immesso.

    È consigliabile specificare il nome dell'entità utente (UPN) perché questo è il servizio Power BI e Server di report di Power BI usare.

    In Power BI Desktop altri utenti visualizzano risultati diversi solo se si usa la sicurezza dinamica in base alle espressioni DAX. In questo caso, è necessario includere il nome utente e il ruolo.

  4. Seleziona OK.

    Il rendering del report viene eseguito in base ai filtri di sicurezza a livello di riga che consentono all'utente di visualizzare.

    Nota

    La funzionalità Visualizza come ruoli non funziona per i modelli DirectQuery con Single Sign-On (SSO) abilitato.

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 Power BI e seguire questa procedura:

  1. Nella servizio Power BI selezionare il menu Altre opzioni per un modello semantico. Questo menu viene visualizzato quando si passa il puntatore del mouse sul nome di un modello semantico, indipendentemente dal menu di spostamento o dalla pagina dell'area di lavoro.

    Screenshot che mostra il menu altre opzioni nell'area di lavoro.

    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.

La 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) vedrà Sicurezza e può assegnare gli utenti a un ruolo.

Utilizzo dei membri

Aggiungere membri

Nella 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, tuttavia, 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 vedere quanti membri fanno parte del ruolo in base al numero 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 la 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 Test come ruolo.

Screenshot dell'opzione test come ruolo.

Si viene reindirizzati al report pubblicato da Power BI Desktop con questo modello semantico, se esistente. I dashboard non sono disponibili per i test usando l'opzione Test come ruolo .

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

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à Test come ruolo non funziona per i modelli DirectQuery con Single Sign-On (SSO) abilitato. Inoltre, non tutti gli aspetti di un report possono essere convalidati nella funzionalità Test come ruolo, incluse le visualizzazioni Q&A, le visualizzazioni informazioni rapide e Copilot.

Uso della funzione DAX username() o userprincipalname()

È possibile sfruttare le funzioni DAX username() o userprincipalname() all'interno del set di dati. È possibile usarle all'interno di espressioni in Power BI Desktop. Quando si pubblica il modello, questo verrà usato all'interno del servizio Power BI.

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

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

Uso della sicurezza a livello di riga con 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 di 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 visualizzazione dei dati è limitata dalla sicurezza a livello di riga. I membri dell'area di lavoro assegnati Amministrazione, membro o collaboratore dispongono dell'autorizzazione di modifica per il modello semantico e, pertanto, la sicurezza a livello di riga non è applicabile. Se si vuole che la sicurezza a livello di riga venga applicata alle persone in un'area di lavoro, è possibile assegnarle 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 nella servizio Power BI sono stati definiti in precedenza ruoli e regole, è necessario ricrearli 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 necessario convertire i file in file di Power BI Desktop (PBIX). Altre informazioni.
  • Le entità servizio non possono essere aggiunte a un ruolo di sicurezza a livello di riga. Di conseguenza, la sicurezza a livello di riga non viene applicata per le app che usano un'entità servizio come identità effettiva finale.
  • Sono supportate solo le connessioni Import e DirectQuery. Le connessioni dinamiche ad Analysis Services vengono gestite nel modello locale.
  • La funzionalità Test as role/View as role non funziona per i modelli DirectQuery con l'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, lo stesso messaggio viene visualizzato come per un campo eliminato o non esistente. Per questi utenti, sembra che il report sia interrotto.

Domande frequenti

Domanda: Cosa accade se sono stati creati in precedenza ruoli e regole per un set di dati nella servizio Power BI? Funzionano ancora se non faccio nulla?
Risposta: No, gli oggetti visivi non verranno visualizzati correttamente. È necessario ricreare i ruoli e le regole all'interno di Power BI Desktop e quindi pubblicarlo nel servizio Power BI.

Domanda: È possibile creare questi ruoli per le origini dati di Analysis Services?
Risposta: Sì, 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 dagli utenti?
Risposta: No, se un utente ha accesso a una determinata riga 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 negli oggetti visivi?
Risposta: No, è possibile proteggere singole righe di dati, ma gli utenti possono sempre visualizzare i dettagli o i dati riepilogati.

Domanda: l'origine dati ha già ruoli di sicurezza definiti , ad esempio ruoli di SQL Server o ruoli SAP BW. Qual è la relazione tra questi ruoli e la sicurezza a livello di riga?
Risposta: la risposta dipende dal fatto che si importano dati o si usi DirectQuery. Se si importano dati nel set di dati di 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 le regole di sicurezza per gli utenti che si connettono in Power BI. Se si usa DirectQuery, vengono usati i ruoli di sicurezza nell'origine dati. Quando un utente apre un report, 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 sono additivi. Ad esempio, se un utente appartiene ai ruoli "Vendite" e "Marketing", possono visualizzare i dati per entrambi questi ruoli.

Domande? Provare a chiedere i suggerimenti di Community di Power BI? Contribuire con idee per migliorare Power BI