RLS (segurança em nível de linha) com o Power BI DesktopRow-level security (RLS) with Power BI Desktop

Você pode usar a RLS (segurança em nível de linha) com o Power BI Desktop pode ser usada para restringir o acesso a dados para determinados usuários.You can use row-level security (RLS) with Power BI Desktop to restrict data access for given users. Os filtros restringem os dados no nível da linha.Filters restrict data at the row level. É possível definir filtros nas funções.You can define filters within roles.

Agora é possível configurar a RLS de modelos de dados importados para o Power BI com o Power BI Desktop.You can now configure RLS for data models imported into Power BI with Power BI Desktop. Você também pode configurar RLS em conjuntos de dados que estão usando DirectQuery, assim como o SQL Server.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Anteriormente, você conseguia apenas implementar a RLS nos modelos do Analysis Services local fora do Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside Power BI. Para as conexões dinâmicas do Analysis Services, configure a Segurança em nível de linha no modelo local.For Analysis Services live connections, you configure Row-level security on the on-premises model. A opção de segurança não é exibida para conjuntos de dados com conexão dinâmica.The security option doesn't show up for live connection datasets.

Importante

Se você tiver definido funções e regras no serviço do Power BI, será necessário recriar essas funções no Power BI Desktop e publicar o relatório no serviço.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.

Saiba mais sobre as opções para a RLS no serviço do Power BI.Learn more about options for RLS within the Power BI Service.

Definir funções e regras no Power BI DesktopDefine roles and rules in Power BI Desktop

É possível definir funções e regras no Power BI Desktop.You can define roles and rules within Power BI Desktop. Quando você publica no Power BI, ele também publica as definições de função.When you publish to Power BI, it also publishes the role definitions.

Para definir funções de segurança, siga estas etapas.To define security roles, follow these steps.

  1. Importe os dados para o relatório do Power BI Desktop ou configure uma conexão do DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Observação

    Você não pode definir funções no Power BI Desktop BI para as conexões dinâmicas do Analysis Services.You can't define roles within Power BI Desktop for Analysis Services live connections. Você precisa fazer isso no modelo do Analysis Services.You need to do that within the Analysis Services model.

  2. Selecione a guia Modelagem.Select the Modeling tab.

  3. Selecione Gerenciar Funções.Select Manage Roles.

  4. Selecione Criar.Select Create.

  5. Forneça um nome para a função.Provide a name for the role.

  6. Selecione a tabela à qual você deseja aplicar uma regra DAX.Select the table that you want to apply a DAX rule.

  7. Insira as expressões DAX.Enter the DAX expressions. Essa expressão deve retornar true ou false.This expression should return a true or false. Por exemplo: [ID da Entidade] = “Valor”.For example: [Entity ID] = “Value”.

    Observação

    Você pode usar o username() nesta expressão.You can use username() within this expression. Lembre-se de que username() terá o formato DOMÍNIO\nomedeusuário no Power BI Desktop.Be aware that username() has the format of DOMAIN\username within Power BI Desktop. Dentro do serviço do Power BI e do Servidor de Relatórios do Power BI, ele está no formato do nome UPN do usuário.Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Como alternativa, você pode usar userprincipalname() , que sempre retorna o usuário no formato de seu nome UPN, nome de usuário@contoso.com.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  8. Depois de criar a expressão DAX, você pode selecionar a seleção acima da caixa de expressão para validar a expressão.After you have created the DAX expression, you can select the check above the expression box to validate the expression.

    Observação

    Nessa caixa de expressão, use vírgulas para separar argumentos da função DAX, mesmo que esteja usando uma localidade que normalmente usa separadores de ponto e vírgula (por exemplo, francês ou alemão).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. Selecione Salvar.Select Save.

Não é possível atribuir usuários a uma função no Power BI Desktop.You can't assign users to a role within Power BI Desktop. Você pode atribuí-los no serviço do Power BI.You assign them in the Power BI service. É possível habilitar a segurança dinâmica no Power BI Desktop fazendo uso das funções DAX username() ou userprincipalname() e configurando as relações corretas.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.

Validar as funções dentro do Power BI DesktopValidate the roles within Power BI Desktop

Depois de criar sua função, você poderá testar os resultados da função no Power BI Desktop.After you've created your roles, test the results of the roles within Power BI Desktop.

  1. Selecione Exibir Como Funções.Select View As Roles.

    Em Exibir como funções, você pode ver as funções que criou.In View as roles, you see the roles you've created.

  2. Selecione a função criada > OK para aplicá-la.Select a role you created > OK to apply that role. Os relatórios renderizam somente os dados relevantes para essa função.The report renders the data relevant for that role.

  3. Você também pode selecionar Outro usuário e fornecer um determinado usuário.You can also select Other user and supply a given user. É melhor fornecer o nome UPN, é ele que será usado pelo serviço do Power BI e pelo Servidor de Relatórios do 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. Selecione OK e os relatórios serão renderizados com base no que esse usuário pode ver.Select OK and the report renders based on what that user can see.

No Power BI Desktop, a opção Outro usuário somente exibirá resultados diferentes se você estiver usando a segurança dinâmica com base em expressões DAX.Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on your DAX expressions.

LimitaçõesLimitations

Veja a seguir uma lista com as limitações atuais da Segurança em Nível de Linha nos modelos de nuvem.Following is a list of the current limitations for row-level security on cloud models.

  • Se você definiu funções e regras anteriormente no serviço do Power BI, deverá criá-las novamente no Power BI Desktop.If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI Desktop.

  • Você pode definir a RLS somente nos conjuntos de dados criados com o Power BI Desktop.You can define RLS only on the datasets created with Power BI Desktop. Se desejar habilitar a RLS para conjuntos de dados criados com o Excel, deverá primeiro converter os arquivos em arquivos PBIX (Power BI Desktop).If you want to enable RLS for datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Saiba maisLearn more

  • Somente há suporte para conexões ETL e DirectQuery.Only ETL and DirectQuery connections are supported. Conexões dinâmicas do Analysis Services são tratadas no modelo local.Live connections to Analysis Services are handled in the on-premises model.

  • No momento, não há suporte para a RLS na Cortana.Cortana is not supported with RLS at this time.

Problemas conhecidosKnown issues

Há um problema conhecido em que você obterá uma mensagem de erro se tentar publicar um relatório publicado anteriormente no 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. O cenário é descrito a seguir.The scenario is as follows.

  1. Sara tem um conjunto de dados que foi publicado no serviço do Power BI e ela configurou a RLS.Anna has a dataset that is published to the Power BI service and has configured RLS.

  2. Sara atualiza o relatório no Power BI Desktop e o publica novamente.Anna updates the report in Power BI Desktop and republishes.

  3. Sara recebe um erro.Anna receives an error.

Solução alternativa: Publique novamente o arquivo do Power BI Desktop por meio do serviço do Power BI até que esse problema seja resolvido.Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. Você pode fazer isso selecionando Obter Dados > Arquivos.You can do that by selecting Get Data > Files.

PERGUNTAS FREQUENTESFAQ

Pergunta: E se eu já tiver criado funções e regras para um conjunto de dados no serviço do Power BI?Question: What if I had previously created roles and rules for a dataset in the Power BI service? Elas ainda funcionariam se eu não fizesse nada?Will they still work if I do nothing?
Resposta: Não, os visuais não seriam renderizados corretamente.Answer: No, visuals will not render properly. Você precisará recriar as funções e regras no Power BI Desktop e, em seguida, publicá-las no serviço do Power BI.You will have to re-create the roles and rules within Power BI Desktop and then publish to the Power BI service.

Pergunta: Posso criar essas funções para fontes de dados do Analysis Services?Question: Can I create these roles for Analysis Services data sources?
Resposta: Sim, isso é possível se você importou os dados no Power BI Desktop.Answer: You can if you imported the data into Power BI Desktop. Se você estiver usando uma conexão dinâmica, não poderá configurar a RLS no serviço do Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Isso é definido no modelo local do Analysis Services.This is defined within the Analysis Services model on-premises.

Pergunta: Posso usar a RLS para limitar as colunas ou as medidas acessíveis por meus usuários?Question: Can I use RLS to limit the columns or measures accessible by my users?
Resposta: Não, se um usuário tiver acesso a uma linha específica de dados, ele poderá ver todas as colunas de dados dessa linha.Answer: No, if a user has access to a particular row of data, they can see all the columns of data for that row.

Pergunta: A RLS permite ocultar dados detalhados, mas conceder acesso aos dados resumidos nos visuais?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Resposta: Não. Você protege linhas individuais de dados, mas os usuários sempre podem ver os detalhes ou os dados resumidos.Answer: No, you secure individual rows of data but users can always see either the details or the summarized data.

Pergunta: Minha fonte de dados já tem funções de segurança definidas (por exemplo, funções do SQL Server ou funções do SAP BW).Question: My data source already has security roles defined (for example SQL Server roles or SAP BW roles). Qual é a relação entre essas funções e a RLS?What is the relationship between these and RLS?
Resposta: A resposta depende de você estar importando dados ou usando o DirectQuery.Answer: The answer depends on whether you're importing data or using DirectQuery. Se você estiver importando dados para o conjunto de dados do Power BI, as funções de segurança em sua fonte de dados não serão usadas.If you're importing data into your Power BI dataset, the security roles in your data source aren't used. Nesse caso, você deve definir a RLS para impor regras de segurança para usuários que se conectam ao Power BI.In this case, you should define RLS to enforce security rules for users who connect in Power BI. Se você estiver usando o DirectQuery, as funções de segurança em sua fonte de dados serão usadas.If you're using DirectQuery, the security roles in your data source are used. Quando um usuário abre um relatório, o Power BI envia uma consulta para a fonte de dados subjacente, que aplica as regras de segurança aos dados com base nas credenciais do usuário.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.

Próximas etapasNext steps

RLS (segurança em nível de linha) com o serviço do Power BIRow-level security (RLS) with the Power BI service

Mais perguntas?More questions? Experimente perguntar à Comunidade do Power BITry asking the Power BI Community