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 ed è possibile definirli all'interno dei ruoli.Filters restrict data access at the row level, and you can define filters within roles. Tenere presente che nel servizio Power BI i membri di un'area di lavoro hanno accesso ai set di dati presenti nell'area di lavoro.Be aware that in the Power BI service, members of a workspace have access to datasets in the workspace. La sicurezza a livello di riga non limita l'accesso a questi dati.RLS doesn't restrict this data access.

È 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 in 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 vengono pubblicate anche le definizioni dei ruoli.When you publish to Power BI, it also publishes the role definitions.

Per definire i ruoli di sicurezza, seguire questa procedura.To define security roles, follow these steps.

  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 can't define roles within Power BI Desktop for Analysis Services live connections. È necessario eseguire questa operazione nel modello di Analysis Services.You 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. Si noti che username() ha il formato DOMINIO\nomeutente in Power BI Desktop.Be aware that username() has the format of DOMAIN\username within 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.Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). In alternativa è possibile usare userprincipalname() , che restituisce sempre l'utente nel formato del nome dell'entità utente, nomeutente@contoso.com.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  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.

    Nota

    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 usano il separatore punto e virgola (ad esempio italiano o tedesco).In this expression box, you use commas to separate DAX function arguments even if you're using a locale that normally uses semicolon separators (e.g. French or German).

  9. Selezionare Salva.Select Save.

Non è possibile assegnare gli utenti a un ruolo in Power BI Desktop.You can't assign users to a role within Power BI Desktop. È necessario assegnarli nel servizio Power BI.You assign them in 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. È consigliabile selezionare questa casella quando è 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.You should check this box when your've also implemented dynamic row-level security at the server level, where row-level security is 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

Convalidare i ruoli in Power BI DesktopValidate the roles within Power BI Desktop

Dopo aver creato i ruoli è possibile testare i risultati corrispondenti all'interno di Power BI Desktop.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. Selezionare Visualizza come ruoli.Select View As Roles.

    In Visualizza come ruoli è possibile visualizzare i ruoli creati.In View as roles, you see the roles you've created.

  2. Selezionare un ruolo creato > OK per applicare il ruolo.Select a role you created > OK to apply that role. Il report esegue il rendering dei dati pertinenti a tale ruolo.The report renders the data relevant for that role.

  3. È anche possibile selezionare Altro utente e indicare un determinato utente.You can also select Other user and supply a given user. È consigliabile specificare il nome dell'entità utente (UPN), che verrà usato dal servizio Power BI e dal server di report Power BI.It's best to supply the User Principal Name (UPN) as that's what the Power BI service and Power BI Report Server use.

  4. Selezionare OK e il rendering del report viene eseguito in base ai dati visibili all'utente.Select OK and the report renders based on what that user can see.

All'interno di Power BI Desktop l'opzione Altro utente visualizza risultati diversi solo se si usa la sicurezza dinamica basata sulle espressioni DAX.Within Power BI Desktop, Other user only displays different results if you're 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.

    Applica filtro di sicurezza in entrambe le direzioni

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. Non è possibile aggiungere gruppi creati all'interno di Power BI.You cannot add Groups created within Power BI. È possibile aggiungere membri esterni all'organizzazione.You can add members external to your organization.

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.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.

Membri nel ruolo

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.

Rimuovere un membro

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

Test come ruolo

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.

Visualizzazione come

È 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.

Testare altri ruoli

È 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.

Impostazioni di gruppo

LimitazioniLimitations

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

  • Se in precedenza sono stati definiti ruoli e regole nel servizio Power BI, sarà necessario crearli di nuovo in Power BI Desktop.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • È possibile definire la sicurezza a livello di riga solo per i set di dati creati con Power BI Desktop.You can define RLS only on the datasets created with Power BI Desktop. Se si vuole abilitare la sicurezza a livello di riga per i set di dati creati con Excel, prima di tutto è necessario convertire i file in file di Power BI Desktop (con estensione pbix).If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (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 l'uso di Cortana non è supportato con Sicurezza a livello di riga.Cortana is not supported with RLS at this time.

Problemi notiKnown issues

Esiste un problema noto per cui si riceve un messaggio di errore quando si prova a pubblicare un report già pubblicato in precedenza da Power BI Desktop.There is a known issue where you'll get an error message if you try to publish a previously published report from Power BI Desktop. Lo scenario è come indicato di seguito.The scenario is as follows.

  1. Anna ha un set di dati che è pubblicato nel servizio Power BI e per il quale è configurata la sicurezza a livello di riga.Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Anna aggiorna il report in Power BI Desktop e ripete l'operazione di pubblicazione.Anna updates the report in Power BI Desktop and republishes.

  3. Anna riceve un errore.Anna receives an error.

Soluzione alternativa: ripetere la pubblicazione del file di Power BI Desktop dal servizio Power BI fino a quando non viene risolto il problema.Workaround: Republish 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 selecting Get Data > Files.

DOMANDE FREQUENTIFAQ

Domanda: Cosa accade se sono stati precedentemente creati ruoli e regole per un set di dati nel servizio Power BI?Question: What if I had previously created roles and 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, il rendering degli oggetti visivi non verrà eseguito correttamente.Answer: No, visuals will not render properly. Sarà necessario creare di nuovo i ruoli e le regole all'interno di Power BI Desktop e quindi pubblicarli nel servizio Power BI.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

Domanda: È possibile creare questi ruoli per le origini dati di Analysis Services?Question: Can I create these roles for Analysis Services data sources?
Risposta: È possibile 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, se un utente può accedere a una riga specifica di dati, può visualizzare tutte le colonne di dati per tale riga.Answer: No, 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 al riepilogo dati negli oggetti visivi?Question: Does RLS let me 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 sia i dettagli sia il riepilogo dati.Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

Domanda: Per l'origine dati sono già stati definiti ruoli di sicurezza, ad esempio ruoli di SQL Server o ruoli di SAP BW.Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). Qual è la relazione tra questi ruoli e la sicurezza a livello di riga?What is the relationship between these and RLS?
Risposta: La risposta varia a seconda che i dati vengano importati o si usi DirectQuery.Answer: The answer depends on whether you're importing data or using DirectQuery. Se si importano i dati nel set di dati Power BI, i ruoli di sicurezza nell'origine dati non vengono usati.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. 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.In this case, you should define RLS to enforce security rules for users who connect in Power BI. Se si usa DirectQuery, i ruoli di sicurezza nell'origine dati vengono usati.If you're using DirectQuery, the security roles in your data source are used. 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.When a user opens a report Power BI sends a query to the underlying data source, which applies security rules to the data based on the user's credentials.

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