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

A RLS (segurança em nível de linha) com o Power BI pode ser usada para restringir o acesso a dados para determinados usuários.Row-level security (RLS) with Power BI can be used 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.

É possível configurar a RLS de modelos de dados importados para o Power BI com o Power BI Desktop.You can 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, 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 of 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 será exibida para conjuntos de dados com conexão dinâmica.The security option will not show up for live connection datasets.

Definir funções e regras no Power BI DesktopDefine roles and rules within 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 will also publish the role definitions.

Para definir funções de segurança, faça o seguinte:To define security roles, you can do the following.

  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 cannot define roles within Power BI Desktop for Analysis Services live connections. Você precisará fazer isso no modelo do Analysis Services.You will 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\nomeusuário no Power BI Desktop.Be aware that username() will have the format of DOMAIN\username within Power BI Desktop. No serviço do Power BI, ele estará no formato do UPN do usuário.Within the Power BI service, it will be in the format of the user's UPN. Como alternativa, é possível usar userprincipalname(), que sempre retornará o usuário no formato de seu nome UPN.Alternatively, you can use userprincipalname() which will always return the user in the format of their user principal name.

  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.

  9. Selecione Salvar.Select Save.

Não é possível atribuir usuários a uma função no Power BI Desktop.You cannot assign users to a role within Power BI Desktop. Isso é feito no serviço do Power BI.This is done within 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.

Por padrão, a filtragem de segurança em nível de linha usa filtros unidirecionais, independentemente se as relações forem definidas para unidirecional ou bidirecional.By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. Habilite manualmente o filtro cruzado bidirecional com a segurança em nível de linha selecionando a relação e marcando a caixa de seleção Aplicar filtro de segurança em ambas as direções.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. Marque essa caixa ao implementar a segurança dinâmica em nível de linha, na qual você pode fornecer segurança em nível de linha com base no nome de usuário ou na ID de logon.You should check this box when implementing dynamic row-level security, wherein you provide row-level security based on user name or login ID.

Para obter mais informações, consulte Filtragem cruzada bidirecional usando o DirectQuery no Power BI Desktop e o artigo técnico Protegendo o modelo semântico de BI de tabela.For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Aplicar filtro de segurança

Validando a função no Power BI DesktopValidating the role within Power BI Desktop

Depois de criar sua função, você poderá testar os resultados da função no Power BI Desktop.After you have created your role, you can test the results of the role within Power BI Desktop. Para fazer isso, selecione Exibir Como Funções.To do this, select View As Roles.

A caixa de diálogo Exibir como funções permite alterar a exibição do que você está vendo para esse usuário ou função específica.The View as roles dialog allows you to change the view of what you are seeing for that specific user or role. Você verá as funções criadas.You will see the roles you have created.

Selecione a função criada e OK para aplicar essa função ao que está sendo exibido.You select the role you created and then select OK to apply that role to what you are viewing. Os relatórios somente renderizarão os dados relevantes a essa função.The reports will only render the data relevant for that role.

Você também pode selecionar Outro usuário e fornecer um usuário específico.You can also select Other user and supply a given user. É melhor fornecer o nome UPN, pois esse é o que será usado pelo serviço do Power BI.It is best to supply the User Principal Name (UPN) as that is what the Power BI service will use. Selecione OK e os relatórios serão renderizados com base no que esse usuário pode ver.Select OK and the reports will render based on what that user can see.

Observação

No Power BI Desktop, isso exibirá apenas resultados diferentes se você estiver usando a segurança dinâmica com base nas expressões DAX.Within Power BI Desktop, this will only display different results if you are using dynamic security based on your DAX expressions.

Gerenciar a segurança no modeloManage security on your model

Para gerenciar a segurança no modelo de dados, é necessário fazer o seguinte.To manage security on your data model, you will want to do the following.

  1. Selecione as reticências (...) para um conjunto de dados.Select the ellipse (…) for a dataset.
  2. Selecione Segurança.Select Security.

Você será levado à página da RLS para adicionar membros a uma função criada no 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. Somente os proprietários do conjunto de dados verão a opção Segurança disponível.Only the owners of the dataset will see Security available. Se o conjunto de dados está em um Grupo, somente os Administradores do grupo encontrarão a opção de segurança.If the dataset is in a Group, only Administrators of the group will see the security option.

Você só pode criar ou modificar funções no Power BI Desktop.You can only create or modify roles within Power BI Desktop.

Trabalhando com membrosWorking with members

Adicionar membrosAdd members

É possível adicionar um membro à função digitando o endereço de email, o nome do usuário, o grupo de segurança ou a lista de distribuição que você deseja adicionar.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. Esse membro deve estar em sua organização.This member has to be within your organization. Não é possível adicionar Grupos criados no Power BI.You cannot add Groups created within Power BI.

Você também pode ver quantos membros fazem parte da função pelo número entre parênteses ao lado do nome da função ou ao lado de Membros.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.

Remover membrosRemove members

É possível remover membros selecionando o X ao lado do nome.You can remove members by selecting the X next to their name.

Validando a função no serviço do Power BIValidating the role within the Power BI service

Você pode validar que a função definida está funcionando corretamente ao testar a função.You can validate that the role you defined is working correctly by testing the role.

  1. Selecione as reticências (...) ao lado da função.Select the ellipsis (...) next to the role.
  2. Selecione Testar dados como funçãoSelect Test data as role

Então, você verá os relatórios que estão disponíveis para essa função.You will then see reports that are available for this role. Os painéis de controle não são apresentados nessa exibição.Dashboards are not presented in this view. Na barra azul acima, você verá o que está sendo aplicado.In the blue bar above, you will see what is being applied.

Você pode testar outras funções ou uma combinação de funções, selecionando Exibindo agora como.You can test other roles, or combination of roles, by selecting Now viewing as.

Você pode optar por exibir dados como uma pessoa específica ou pode selecionar uma combinação de funções disponíveis para validar que estão funcionando.You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

Para retornar à exibição normal, selecione Voltar à Segurança de Nível de Linha.To return to normal viewing, select Back to Row-Level Security.

Usando a função DAX username() ou userprincipalname()Using the username() or userprincipalname() DAX function

Você pode tirar proveito das funções DAX username() ou userprincipalname() dentro de seu conjunto de dados.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Você pode usá-las dentro de expressões no Power BI Desktop.You can use them within expressions in Power BI Desktop. Quando você publicar seu modelo, ele será usado no serviço do Power BI.When you publish your model, it will be used within the Power BI service.

No Power BI Desktop, username() retorna um usuário no formato DOMÍNIO\Usuário e userprincipalname() retorna um usuário no 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.

No serviço do Power BI, username() e userprincipalname() retornam o nome UPN do usuário.Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Isso se parece com um endereço de email.This looks similar to an email address.

Usando RLS com espaços de trabalho do aplicativo no Power BIUsing RLS with app workspaces in Power BI

Se você publicar seu relatório do Power BI Desktop em um espaço de trabalho do aplicativo no serviço do Power BI, as funções serão aplicadas aos membros somente leitura.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. Será necessário indicar que os membros só podem exibir o conteúdo do Power BI nas configurações de espaço de trabalho do aplicativo.You will need to indicate that members can only view Power BI content within the app workspace settings.

Aviso

Se você tiver configurado o espaço de trabalho do aplicativo para que os membros tenham permissões de edição, as funções RLS não serão aplicadas a eles.If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to them. Os usuários poderão ver todos os dados.Users will be able to see all of the data.

LimitaçõesLimitations

Veja a seguir uma lista das limitações atuais da segurança em nível de linha nos modelos de nuvem.Here is a list of the current limitations for row-level security on cloud models.

  • Se você já tinha funções/regras definidas no serviço do Power BI, precisará recriá-las no 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.
  • É possível definir a RLS somente nos conjuntos de dados criados usando o cliente do Power BI Desktop.You can define RLS only on the datasets created using Power BI Desktop client. Se desejar habilitar a RLS para conjuntos de dados criados com o Excel, será necessário converter os arquivos em arquivos PBIX primeiro.If you want to enable RLS for datasets created with Excel, you will need to convert your files into PBIX files first. Saiba maisLearn more
  • Somente conexões ETL e DirectQuery têm suporte.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 P e R nem para a Cortana na RLS.Q&A and Cortana is not supported with RLS at this time. Você não verá a caixa de entrada da P e R para os dashboards se todos os modelos tiverem a RLS configurada.You will not see the Q&A input box for dashboards if all models have RLS configured. Isso está em nossos planos, mas ainda não há um cronograma disponível.This is on the roadmap, but a timeline is not available.
  • Atualmente, não há suporte para o compartilhamento externo com conjuntos de dados que usam RLS.External sharing is not currently supported with datasets that use RLS.
  • Para qualquer modelo fornecido, o número máximo de entidades do Azure AD (ou seja, usuários individuais ou grupos de segurança) que podem ser atribuídos a funções de segurança é 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. Para atribuir grandes números de usuários a funções, certifique-se de atribuir grupos de segurança em vez de usuários individuais.To assign large numbers of users to roles, be sure to assign security groups, rather than individual users.

Problemas conhecidosKnown issues

Há um problema conhecido em que você receberá uma mensagem de erro quando tentar publicar por meio do Power BI Desktop se ele já tiver sido publicado anteriormente.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. 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 publised 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 re-publishes.
  3. Ela receberá um erro.Anna will receive an error.

Solução alternativa: publique novamente o arquivo do Power BI Desktop no serviço do Power BI até que esse problema seja resolvido.Workaround: Re-publish the Power BI Desktop file from the Power BI service until this issue is resolved. Faça isso selecionando Obter Dados > Arquivos.You can do that by select Get Data > Files.

PERGUNTAS FREQUENTESFAQ

Pergunta: E se eu já tiver criado funções/regras para um conjunto de dados no serviço do Power BI?Question: What if I had previously created roles/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.Answer: No. Os visuais não seriam renderizados corretamente.Visuals will not render properly. Você precisaria recriar as funções/regras no Power BI Desktop e publicá-las no serviço de Power BI.You will have to re-create the roles/rules within Power BI Desktop and then published to the Power BI service.

Pergunta: Posso criar essas funções para fontes de dados do Analysis Services?Question: Can I creates these roles for Analysis Services data sources?
Resposta: Sim, é 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.Answer: No. Se um usuário tiver acesso a uma linha específica de dados, ele poderá ver todas as colunas de dados dessa linha.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 em visuais?Question: Does RLS allow me to 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 summarized data.

Próximas etapasNext steps

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

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