Limitare l'accesso ai dati con sicurezza a livello di riga per Power BI DesktopRestrict data access with row-level security (RLS) for Power BI Desktop

È possibile usare la sicurezza a livello di riga con Power BI Desktop per limitare l'accesso ai dati per determinati utenti.You can use row-level security (RLS) with Power BI Desktop 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 locali all'esterno di Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside 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 viene visualizzata per i set di dati di connessione dinamica.The security option doesn't show up for live connection datasets.

Importante

Se sono stati definiti ruoli e regole all'interno del servizio Power BI, è necessario creare di nuovo tali ruoli all'interno di Power BI Desktop e pubblicare il report nel servizio.If you defined roles and rules within the Power BI service, you need to recreate those roles within Power BI Desktop and publish the report to the service. Vedere 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 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. Dalla scheda Creazione di modelli selezionare Gestisci ruoli.From the Modeling tab, select Manage Roles.

    Selezionare Gestisci ruoli

  3. Nella finestra Gestisci ruoli selezionare Crea.From the Manage roles window, select Create.

    Selezionare Crea

  4. In Ruoli specificare un nome per il ruolo.Under Roles, provide a name for the role.

  5. In Tabelle selezionare la tabella a cui si vuole applicare una regola DAX.Under Tables, select the table to which you want to apply a DAX rule.

  6. Nella casella Espressione DAX filtro tabella immettere le espressioni DAX.In the Table filter DAX expression box, enter the DAX expressions. Questa espressione restituisce un valore true o false.This expression returns a value of true or false. Ad esempio: [Entity ID] = “Value”.For example: [Entity ID] = “Value”.

    Finestra Gestisci ruoli

    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.

  7. Dopo la creazione dell'espressione DAX, è possibile selezionare il segno di spunta sopra la casella dell'espressione per convalidarla.After you've created the DAX expression, select the checkmark above the expression box to validate the expression.

    Convalidare l'espressione DAX

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

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

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. Dalla scheda Creazione di modelli selezionare Visualizza come ruoli.From the Modeling tab, select View as Roles.

    Selezionare Visualizza come ruoli

    Verrà aperta la finestra Visualizza come ruoli in cui sono visualizzati i ruoli creati.The View as roles window appears, where you see the roles you've created.

    Finestra Visualizza come ruoli

  2. Selezionare un ruolo creato e quindi scegliere OK per applicare il ruolo.Select a role you created, and then select 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.

    Selezionare Altro utente

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

    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 displays different results only if you're using dynamic security based on your DAX expressions.

  4. Seleziona OK.Select OK.

    Il rendering del report viene eseguito in base ai dati visibili all'utente.The report renders based on what that user can see.

LimitazioniLimitations

Di seguito è riportato un elenco delle limitazioni correnti per la sicurezza a livello di riga nei modelli cloud:The current limitations for row-level security on cloud models are as follows:

  • 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 informazioni.Learn more.

  • Sono supportate solo le connessioni di importazione e DirectQuery.Only Import 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.

Problemi notiKnown issues

Esiste un problema noto per cui si riceve un messaggio di errore quando si prova a pubblicare un report pubblicato in precedenza da Power BI Desktop.There's 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 è il seguente: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

Per altre informazioni correlate a questo articolo, vedere le risorse seguenti:For more information related to this article, check out the following resources: