Sicurezza a livello di riga con Power BI DesktopRow-level security (RLS) with Power BI Desktop

La sicurezza a livello di riga con Power BI Desktop può essere usata per limitare l'accesso ai dati per determinati utenti.Row-level security (RLS) with Power BI Desktop can be used to restrict data access for given users. I filtri limitano l'accesso ai dati a livello di riga.Filters restrict data at the row level. È possibile definire i filtri nei ruoli.You can define filters within roles.

È ora possibile configurare la sicurezza a livello di riga per i modelli di dati importati in Power BI con Power BI Desktop.You can now configure RLS for data models imported into Power BI with Power BI Desktop. È anche possibile configurare la sicurezza a livello di riga nei set di dati che usano DirectQuery, ad esempio SQL Server.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. In precedenza, era possibile implementare la sicurezza a livello di riga solo nei modelli di Analysis Services all'esterno di Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside of Power BI. Per le connessioni dinamiche ad Analysis Services è possibile configurare la sicurezza a livello di riga nel modello locale.For Analysis Services live connections, you configure Row-level security on the on-premises model. L'opzione di sicurezza non verrà visualizzata per i set di dati di connessione dinamica.The security option will not show up for live connection datasets.

Importante

Se sono stati definiti ruoli/regole all'interno del servizio Power BI, sarà necessario creare di nuovo tali ruoli all'interno di Power BI Desktop e pubblicare il report nel servizio.If you defined roles/rules within the Power BI service, you will need to recreate those roles within Power BI Desktop and publish the report to the service.

Altre informazioni sulle opzioni per la sicurezza a livello di riga all'interno del servizio Power BI.Learn more about options for RLS within the Power BI Service.

Definire i ruoli e le regole in Power BI DesktopDefine roles and rules within Power BI Desktop

È possibile definire i ruoli e le regole in Power BI Desktop.You can define roles and rules within Power BI Desktop. Quando si esegue la pubblicazione in Power BI, verranno pubblicate anche le definizioni dei ruoli.When you publish to Power BI, it will also publish the role definitions.

Per definire i ruoli di sicurezza, seguire questa procedura.To define security roles, you can do the following.

  1. Importare dati nel report di Power BI Desktop o configurare una connessione DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Nota

    Non è possibile definire i ruoli in Power BI Desktop per connessioni dinamiche di Analysis Services.You cannot define roles within Power BI Desktop for Analysis Services live connections. Sarà necessario eseguire questa operazione nel modello di Analysis Services.You will need to do that within the Analysis Services model.

  2. Selezionare la scheda Creazione di modelli.Select the Modeling tab.
  3. Selezionare Gestisci ruoli.Select Manage Roles.

  4. Selezionare Crea.Select Create.

  5. Specificare un nome per il ruolo.Provide a name for the role.
  6. Selezionare la tabella a cui si vuole applicare una regola DAX.Select the table that you want to apply a DAX rule.
  7. Immettere le espressioni DAX.Enter the DAX expressions. Questa espressione deve restituire true o false.This expression should return a true or false. Ad esempio: [Entity ID] = "Valore".For example: [Entity ID] = “Value”.

    Nota

    È possibile usare username() in questa espressione.You can use username() within this expression. Occorre notare che username() avrà il formato DOMINIO\nomeutente in Power BI Desktop.Be aware that username() will have the format of DOMAIN\username within Power BI Desktop. Nel servizio Power BI avrà il formato del valore UPN dell'utente.Within the Power BI service, it will be in the format of the user's UPN. In alternativa, è possibile usare userprincipalname(), che restituirà sempre l'utente nel formato nome dell'entità utente.Alternatively, you can use userprincipalname() which will always return the user in the format of their user principal name.

  8. Dopo la creazione dell'espressione DAX, è possibile selezionare il segno di spunta sopra la casella dell'espressione per convalidare l'espressione.After you have created the DAX expression, you can select the check above the expression box to validate the expression.

  9. Selezionare Salva.Select Save.

Non è possibile assegnare gli utenti a un ruolo in Power BI Desktop.You cannot assign users to a role within Power BI Desktop. Questa operazione viene eseguita nel servizio Power BI.This is done within the Power BI service. È possibile abilitare la sicurezza dinamica in Power BI Desktop usando le funzioni DAX username() o userprincipalname() e configurando le relazioni appropriate.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

Convalida del ruolo all'interno di Power BI DesktopValidating the role within Power BI Desktop

Dopo aver creato il ruolo, è possibile testare i risultati del ruolo all'interno di Power BI Desktop.After you have created your role, you can test the results of the role within Power BI Desktop. A tale scopo, selezionare Visualizza come ruoli.To do this, select View As Roles.

La finestra di dialogo Visualizza come ruoli consente di modificare la visualizzazione dei dati in base all'utente o al ruolo specifico.The View as roles dialog allows you to change the view of what you are seeing for that specific user or role. Verranno visualizzati i ruoli creati.You will see the roles you have created.

Selezionare il ruolo creato e quindi scegliere OK per applicarlo ai dati visualizzati.You select the role you created and then select OK to apply that role to what you are viewing. I report eseguiranno il rendering solo dei dati pertinenti a tale ruolo.The reports will only render the data relevant for that role.

È anche possibile selezionare Altro utente e indicare un determinato utente.You can also select Other user and supply a given user. È consigliabile fornire il nome dell'entità utente (UPN), cioè quello che verrà usato dal servizio Power BI.It is best to supply the User Principal Name (UPN) as that is what the Power BI service will use. Selezionare OK in modo che i report eseguano il rendering in base ai dati visibili all'utente.Select OK and the reports will render based on what that user can see.

Nota

All'interno di Power BI Desktop verranno visualizzati risultati differenti solo se si usa la sicurezza dinamica basata sulle espressioni DAX.Within Power BI Desktop, this will only display different results if you are using dynamic security based on your DAX expressions.

LimitazioniLimitations

Di seguito è riportato un elenco delle limitazioni correnti per la sicurezza a livello di riga nei modelli cloud.Here is a list of the current limitations for row-level security on cloud models.

  • Se in precedenza sono stati definiti ruoli/regole all'interno del servizio Power BI, sarà necessario crearli di nuovo all'interno di Power BI Desktop.If you previously had roles/rules defined within the Power BI service, you will need to recreate them within Power BI Desktop.
  • È possibile definire la sicurezza a livello di riga solo per i set di dati creati con il client Power BI Desktop.You can define RLS only on the datasets created using Power BI Desktop client. Se si vuole abilitare la sicurezza a livello di riga per i set di dati creati con Excel, sarà necessario convertire prima di tutto i file in file PBIX.If you want to enable RLS for datasets created with Excel, you will need to convert your files into PBIX files first. Altre informazioniLearn more
  • Sono supportate solo le connessioni ETL e DirectQuery.Only ETL, and DirectQuery connections are supported. Le connessioni dinamiche ad Analysis Services vengono gestite nel modello locale.Live connections to Analysis Services are handled in the on-premises model.
  • Al momento le funzionalità Domande e risposte e Cortana non sono supportate con la sicurezza a livello di riga.Q&A and Cortana is not supported with RLS at this time. La casella di input Domande e risposte non verrà visualizzata per i dashboard se è stata configurata la sicurezza a livello di riga per tutti i modelli.You will not see the Q&A input box for dashboards if all models have RLS configured. È una funzionalità prevista, anche se non è ancora disponibile una data precisa.This is on the roadmap, but a timeline is not available.
  • La condivisione esterna non è al momento supportata con i set di dati che usano la sicurezza a livello di riga.External sharing is not currently supported with datasets that use RLS.
  • Per un determinato modello, il numero massimo di entità di Azure AD, ovvero i singoli utenti o i gruppi di sicurezza, che possono essere assegnati ai ruoli di sicurezza è 1.000.For any given model, the maximum number of Azure AD principals (i.e. individual users or security groups) that can be assigned to security roles is 1,000. Per assegnare un numero elevato di utenti ai ruoli, assicurarsi di assegnare i gruppi di sicurezza e non i singoli utenti.To assign large numbers of users to roles, be sure to assign security groups, rather than individual users.

Problemi notiKnown issues

Esiste un problema noto per cui si riceve un messaggio di errore quando si prova a pubblicare da Power BI Desktop un set di dati che è già stato pubblicato in precedenza.There is a known issue where you will receive an error message when trying to publish from Power BI Desktop if it was previously published. Lo scenario è come indicato di seguito.The scenario is as follows.

  1. Anna ha un set di dati che viene pubblicato nel servizio Power BI e per cui è configurata la sicurezza a livello di riga.Anna has a dataset that is publised to the Power BI service and has configured RLS.
  2. Anna aggiorna il report in Power BI Desktop e pubblica nuovamente il set di dati.Anna updates the report in Power BI Desktop and re-publishes.
  3. Anna riceve un errore.Anna will receive an error.

Soluzione alternativa: pubblicare nuovamente il file di Power BI Desktop dal servizio Power BI finché non viene risolto il problema.Workaround: Re-publish the Power BI Desktop file from the Power BI service until this issue is resolved. A tale scopo, selezionare Recupera dati > File.You can do that by select Get Data > Files.

DOMANDE FREQUENTIFAQ

Domanda: Cosa accade se sono stati precedentemente creati ruoli/regole per un set di dati nel servizio Power BI?Question: What if I had previously created roles/rules for a dataset in the Power BI service? Continueranno a funzionare anche se non si esegue alcuna operazione?Will they still work if I do nothing?
Risposta: No.Answer: No. Il rendering degli oggetti visivi non verrà eseguito correttamente.Visuals will not render properly. Sarà necessario creare di nuovo i ruoli e/o le regole all'interno di Power BI Desktop e quindi pubblicarli nel servizio Power BI.You will have to re-create the roles/rules within Power BI Desktop and then published to the Power BI service.

Domanda: È possibile creare questi ruoli per le origini dati di Analysis Services?Question: Can I creates these roles for Analysis Services data sources?
Risposta: È possibile solo se i dati sono stati importati in Power BI Desktop.Answer: You can if you imported the data into Power BI Desktop. Se si usa una connessione dinamica, non sarà possibile configurare la sicurezza a livello di riga all'interno del servizio Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Ciò viene definito all'interno del modello di Analysis Services in locale.This is defined within the Analysis Services model on-premises.

Domanda: È possibile usare la sicurezza a livello di riga per limitare le colonne o le misure accessibili agli utenti?Question: Can I use RLS to limit the columns or measures accessible by my users?
Risposta: No.Answer: No. Se un utente può accedere a una riga specifica di dati, può visualizzare tutte le colonne di dati per tale riga.If a user has access to a particular row of data, they can see all the columns of data for that row.

Domanda: La sicurezza a livello di riga consente di nascondere i dati dettagliati ma di concedere l'accesso ai dati riepilogati in oggetti visivi?Question: Does RLS allow me to hide detailed data but give access to data summarized in visuals?
Risposta: No. È possibile proteggere singole righe di dati, ma gli utenti possono visualizzare sempre i dettagli o i dati riepilogati.Answer: No, you secure individual rows of data but users can always see either the details or summarized data.

Passaggi successiviNext steps

Sicurezza a livello di riga con il servizio Power BIRow-level security (RLS) with the Power BI service

Altre domande?More questions? Provare a rivolgersi alla community di Power BITry asking the Power BI Community