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

La sicurezza a livello di riga con Power BI può essere usata per limitare l'accesso ai dati per determinati utenti.Row-level security (RLS) with Power BI 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.

È possibile configurare la sicurezza a livello di riga per i modelli di dati importati in Power BI con Power BI Desktop.You can 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.

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.

Per impostazione predefinita, i filtri per la sicurezza a livello di riga usano i filtri unidirezionali, indipendentemente dal fatto che le relazioni siano impostate su unidirezionali o bidirezionali.By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. È possibile abilitare manualmente il filtro incrociato bidirezionale con la sicurezza a livello di riga selezionando la selezione e selezionando la casella di controllo Applica filtro di sicurezza in entrambe le direzioni.You can manually enable bi-directional cross-filter with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. È necessario selezionare questa casella quando si implementa la sicurezza dinamica a livello di riga, che consente di fornire la sicurezza a livello di riga in base a un nome utente o un ID di accesso.You should check this box when implementing dynamic row-level security, wherein you provide row-level security based on user name or login ID.

Per altre informazioni, vedere Filtro incrociato bidirezionale con DirectQuery in Power BI Desktop e l'articolo tecnico Securing the Tabular BI Semantic Model (Protezione del modello semantico tabulare di BI).For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Applicare il filtro di sicurezza

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.

Gestire la sicurezza nel modelloManage security on your model

Per gestire la sicurezza nel modello di dati, si dovranno eseguire le operazioni seguenti.To manage security on your data model, you will want to do the following.

  1. Selezionare i puntini di sospensione (…) accanto a un set di dati.Select the ellipse (…) for a dataset.
  2. Selezionare Sicurezza.Select Security.

Verrà visualizzata la pagina della sicurezza a livello di riga per aggiungere membri a un ruolo che è stato creato in Power BI Desktop.This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. Solo i proprietari del set di dati potranno visualizzare l'opzione Sicurezza.Only the owners of the dataset will see Security available. Se il set di dati è in un gruppo, l'opzione di sicurezza sarà visibile solo per gli amministratori del gruppo.If the dataset is in a Group, only Administrators of the group will see the security option.

È possibile creare o modificare i ruoli solo all'interno di Power BI Desktop.You can only create or modify roles within Power BI Desktop.

Utilizzo dei membriWorking with members

Aggiungere membriAdd members

È possibile aggiungere un membro al ruolo digitando l'indirizzo di posta elettronica, o il nome, dell'utente, del gruppo di sicurezza o della lista di distribuzione da aggiungere.You can add a member to the role by typing in the email address, or name, of the user, security group or distribution list you want to add. Il membro deve essere interno all'organizzazione.This member has to be within your organization. Non è possibile aggiungere gruppi creati all'interno di Power BI.You cannot add Groups created within Power BI.

È 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.You can also see how many members are part of the role by the number in parenthesis next to the role name, or next to Members.

Rimuovere i membriRemove members

È possibile rimuovere i membri selezionando l'icona X accanto al nome.You can remove members by selecting the X next to their name.

Convalida del ruolo all'interno del servizio Power BIValidating the role within the Power BI service

È possibile convalidare il corretto funzionamento del ruolo definito testandolo.You can validate that the role you defined is working correctly by testing the role.

  1. Selezionare i puntini di sospensione (…) accanto al ruolo.Select the ellipsis (...) next to the role.
  2. Selezionare Test dei dati come ruoloSelect Test data as role

Verranno visualizzati i report disponibili per questo ruolo.You will then see reports that are available for this role. I dashboard non vengono presentati in questa visualizzazione.Dashboards are not presented in this view. La barra blu sopra indica cosa viene applicato.In the blue bar above, you will see what is being applied.

È possibile testare altri ruoli, o combinazioni di ruoli, selezionando Visualizzazione attuale come.You can test other roles, or combination of roles, by selecting Now viewing as.

È possibile scegliere di visualizzare i dati come un utente specifico oppure è possibile selezionare una combinazione dei ruoli disponibili per convalidarne il funzionamento.You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

Per tornare alla visualizzazione normale, selezionare Torna alla sicurezza a livello di riga.To return to normal viewing, select Back to Row-Level Security.

Uso della funzione DAX username() o userprincipalname()Using the username() or userprincipalname() DAX function

È possibile sfruttare la funzione DAX username() o userprincipalname() all'interno del set di dati.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Queste funzioni possono essere usate all'interno di espressioni in Power BI Desktop.You can use them within expressions in Power BI Desktop. Quando si pubblica il modello, verrà usata all'interno del servizio Power BI.When you publish your model, it will be used within the Power BI service.

All'interno di Power BI Desktop, username() restituirà un utente nel formato DOMINIO\utente, mentre userprincipalname() restituirà un utente nel formato user@contoso.com.Within Power BI Desktop, username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of user@contoso.com.

All'interno del servizio Power BI, username() e userprincipalname() restituiranno il nome dell'entità utente (UPN, User Principal Name).Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). simile a un indirizzo di posta elettronica.This looks similar to an email address.

Usare la sicurezza a livello di riga con le aree di lavoro per le app in Power BIUsing RLS with app workspaces in Power BI

Se si pubblica il report di Power BI Desktop in un'area di lavoro per le app all'interno del servizio Power BI, i ruoli verranno applicati ai membri di sola lettura.If you publish your Power BI Desktop report to an app workspace within the Power BI service, the roles will be applied to read-only members. È necessario indicare che i membri possono visualizzare il contenuto di Power BI solo entro le impostazioni dell'area di lavoro per le app.You will need to indicate that members can only view Power BI content within the app workspace settings.

Avviso

Se è stata configurata l'area di lavoro per le app in modo da assegnare le autorizzazioni di modifica ai membri, i ruoli di sicurezza a livello di riga non verranno applicati.If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to them. Gli utenti riusciranno a visualizzare tutti i dati.Users will be able to see all of the data.

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 Power BI DesktopRow-level security (RLS) with Power BI Desktop

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