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 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 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 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 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. In alternativa è possibile usare userprincipalname(), che restituisce sempre l'utente nel formato nome dell'entità utente, username@contoso.com. 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, 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'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 in Fabric e seguire questa procedura:

  1. In Infrastruttura selezionare il menu Altre opzioni per un modello semantico. Questo menu viene visualizzato quando si passa il puntatore del mouse 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.

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 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. Queste funzioni possono essere usate 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 a Admin, Member o Contributor 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