Segurança ao nível da linha (RLS) com o Power BIRow-level security (RLS) with Power BI

A segurança ao nível da linha (RLS) com o Power BI pode ser utilizada para restringir o acesso a dados para determinados utilizadores.Row-level security (RLS) with Power BI can be used to restrict data access for given users. Os filtros restringem o acesso aos dados ao nível da linha e pode definir filtros nas funções.Filters restrict data access at the row level, and you can define filters within roles. Tenha em atenção que, no serviço Power BI, os membros de uma área de trabalho têm acesso a conjuntos de dados na área de trabalho.Be aware that in the Power BI service, members of a workspace have access to datasets in the workspace. A RLS não restringe este acesso a dados.RLS doesn't restrict this data access.

Pode configurar a RLS para 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. Também pode configurar a RLS em conjuntos de dados que utilizem o DirectQuery, como o SQL Server.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Anteriormente, só era possível implementar a RLS em modelos dos Analysis Services no 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 ligações em direto dos Analysis Services, configure a segurança ao nível da linha no modelo no local.For Analysis Services live connections, you configure Row-level security on the on-premises model. A opção de segurança não vai ser apresentada para conjuntos de dados de ligação em direto.The security option will not show up for live connection datasets.

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

Pode definir funções e regras no Power BI Desktop.You can define roles and rules within Power BI Desktop. Quando publicar no Power BI, este também publicará as definições de funções.When you publish to Power BI, it also publishes the role definitions.

Siga estes passos para definir funções de segurança.To define security roles, follow these steps.

  1. Importar dados para o seu relatório do Power BI Desktop ou configurar uma ligação do DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Nota

    Não pode definir funções no Power BI Desktop para ligações em direto do Analysis Services.You can't define roles within Power BI Desktop for Analysis Services live connections. Terá de o fazer no modelo do Analysis Services.You need to do that within the Analysis Services model.

  2. Selecione o separador Modelação.Select the Modeling tab.

  3. Selecione Gerir funções.Select Manage Roles.

  4. Selecione Criar.Select Create.

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

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

  7. Introduza as expressões DAX.Enter the DAX expressions. Esta expressão deverá devolver um valor de verdadeiro ou falso.This expression should return a true or false. Por exemplo: [ID de Entidade] = “Valor”.For example: [Entity ID] = “Value”.

    Nota

    Pode utilizar username() nesta expressão.You can use username() within this expression. Tenha em conta que username() tem o formato DOMAIN\username no Power BI Desktop.Be aware that username() has the format of DOMAIN\username within Power BI Desktop. No serviço Power BI e no Power BI Report Server, estará no formato do Nome Principal de Utilizador (UPN).Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Em alternativa, pode utilizar userprincipalname() , que vai sempre devolver o utilizador no formato do respetivo nome principal de utilizador, nomedeutilizador@contoso.com.Alternatively, you can use userprincipalname(), which always returns the user in the format of their user principal name, username@contoso.com.

  8. Após criar a expressão DAX, pode selecionar a caixa de verificaçã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 Guardar.Select Save.

Não pode atribuir utilizadores a uma função no Power BI Desktop.You can't assign users to a role within Power BI Desktop. Pode atribuí-los no serviço Power BI.You assign them in the Power BI service. Pode ativar a segurança dinâmica no Power BI Desktop ao utilizar as funções DAX username() ou userprincipalname() e ter as devidas relações configuradas.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 predefinição, a filtragem de segurança ao nível da linha utiliza filtros unidirecionais, independentemente de as relações estarem definidas como unidirecionais ou bidirecionais.By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. Pode ativar manualmente o filtro cruzado bidirecional com segurança ao nível da linha ao selecionar a relação e ao marcar a caixa de verificaçãoAplicar filtros 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. Deve marcar esta caixa ao implementar a segurança dinâmica ao nível da linha, com a qual obtém segurança ao nível da linha com base no nome de utilizador ou no ID de início de sessão.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, veja Bidirectional cross-filtering using DirectQuery in Power BI Desktop (Filtragem cruzada bidirecional com o DirectQuery no Power BI Desktop) e o artigo técnico Securing the Tabular BI Semantic Model (Proteger o Modelo Semântico Tabular do BI).For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Aplicar o Filtro de Segurança

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

Depois de criar as suas funções, teste os resultados das mesmas no Power BI Desktop.After you've created your roles, test the results of the roles within Power BI Desktop.

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

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

  2. Selecione uma função que criou e selecione OK para a aplicar.Select a role you created > OK to apply that role. O relatório compõe os dados relevantes para essa função.The report renders the data relevant for that role.

  3. Também pode selecionar Outro utilizador e fornecer um determinado utilizador.You can also select Other user and supply a given user. Recomendamos que forneça o Nome Principal de Utilizador (UPN), uma vez que é utilizado pelo serviço Power BI e pelo Power BI Report Server.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 o relatório será composto com base no que esse utilizador pode ver.Select OK and the report renders based on what that user can see.

No Power BI Desktop, a opção Outro utilizador só apresentará resultados diferentes se estiver a utilizar a segurança dinâmica com base nas suas expressões DAX.Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on your DAX expressions.

Gerir a segurança no modeloManage security on your model

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

    Aplicar filtros de segurança em ambas as direções

Esta ação leva-o para a página RLS para adicionar membros a uma função que criou 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. Apenas 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 estiver num Grupo, apenas os Administradores do grupo verão a opção de segurança.If the dataset is in a Group, only Administrators of the group will see the security option.

Só poderá criar ou modificar funções dentro do Power BI Desktop.You can only create or modify roles within Power BI Desktop.

Trabalhar com membrosWorking with members

Adicionar membrosAdd members

Pode adicionar um membro à função ao introduzir o endereço de e-mail ou o nome do utilizador, grupo de segurança ou lista de distribuição que pretende 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. Não é possível adicionar Grupos criados no Power BI.You cannot add Groups created within Power BI. Pode adicionar membros externos à sua organização.You can add members external to your organization.

Adicionar um membro

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.

Membros na função

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.

Remover membro

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

Pode validar que a função que definiu está a funcionar 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 (...) junto à função.Select the ellipsis (...) next to the role.
  2. Selecione Testar dados como funçãoSelect Test data as role

Testar como função

Em seguida, irá ver os relatórios que estão disponíveis para esta função.You will then see reports that are available for this role. Os dashboards não são apresentados nesta vista.Dashboards are not presented in this view. Na barra azul acima, verá o que está a ser aplicado.In the blue bar above, you will see what is being applied.

A ver agora como

Pode testar outras funções ou combinação de funções, selecionando A ver agora como.You can test other roles, or combination of roles, by selecting Now viewing as.

Testar outras funções

Pode optar por ver os dados como uma pessoa específica ou pode selecionar uma combinação de funções disponíveis para validar que estão a funcionar.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 voltar à visualização normal, selecione Voltar à Segurança de Nível de Linha.To return to normal viewing, select Back to Row-Level Security.

Utilizar as funções DAX username() ou userprincipalname()Using the username() or userprincipalname() DAX function

Pode tirar partido das funções DAX username() ou userprincipalname() dentro do conjunto de dados.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Pode utilizá-las nas expressões no Power BI Desktop.You can use them within expressions in Power BI Desktop. Quando publicar o seu modelo, este será utilizado no âmbito do serviço Power BI.When you publish your model, it will be used within the Power BI service.

No Power BI Desktop, username() irá devolver um utilizador no formato de DOMÍNIO\Utilizador e userprincipalname() irá devolver um utilizador no formato de 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 âmbito do serviço Power BI, username() e userprincipalname() irão devolver o Nome Principal de Utilizador (UPN) do utilizador.Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Isto parece ser semelhante a um endereço de e-mail.This looks similar to an email address.

Utilizar a RLS com áreas de trabalho de aplicação no Power BIUsing RLS with app workspaces in Power BI

Se publicar o relatório do Power BI Desktop numa área de trabalho de aplicação no serviço Power BI, as funções serão aplicadas aos membros só de 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. Terá de indicar que os membros só podem ver o conteúdo do Power BI nas definições de área de trabalho da aplicação.You will need to indicate that members can only view Power BI content within the app workspace settings.

Aviso

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

Definições de grupo

LimitaçõesLimitations

Segue-se uma lista das limitações atuais da segurança ao nível de linha nos modelos da cloud.Following is a list of the current limitations for row-level security on cloud models.

  • Se tiver definido anteriormente funções e regras no serviço Power BI, tem de as recriar 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.

  • Pode definir a RLS apenas nos conjuntos de dados criados com o Power BI Desktop.You can define RLS only on the datasets created with Power BI Desktop. Se quiser ativar a RLS para os conjuntos de dados criados com o Excel, primeiro tem de converter os seus ficheiros em ficheiros do Power BI Desktop (PBIX).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

  • Só são suportadas ligações ETL e DirectQuery.Only ETL and DirectQuery connections are supported. As ligações em direto para o Analysis Services são processadas no modelo no local.Live connections to Analysis Services are handled in the on-premises model.

  • A Cortana não é suportada com a RLS neste momento.Cortana is not supported with RLS at this time.

Problemas conhecidosKnown issues

Existe um problema conhecido em que é apresentada uma mensagem de erro ao tentar publicar um relatório do Power BI Desktop publicado anteriormente.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. Segue-se o cenário.The scenario is as follows.

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

  2. A Teresa atualiza o relatório no Power BI Desktop e volta a publicar o conjunto de dados.Anna updates the report in Power BI Desktop and republishes.

  3. A Teresa vê um erro.Anna receives an error.

Solução: publicar novamente o ficheiro do Power BI Desktop a partir do serviço Power BI até que o problema seja resolvido.Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. Pode fazê-lo ao selecionar Obter Dados > Ficheiros.You can do that by selecting Get Data > Files.

PERGUNTAS FREQUENTESFAQ

Pergunta: E se eu tiver criado anteriormente funções e regras para um conjunto de dados no serviço Power BI?Question: What if I had previously created roles and rules for a dataset in the Power BI service? Estes continuarão a funcionar se não fizer nada?Will they still work if I do nothing?
Resposta: Não.Answer: No. Os elementos visuais não ficarão compostos corretamente.Visuals will not render properly. Terá de voltar a criar as funções e regras no Power BI Desktop e, em seguida, publicá-las no serviço 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 estas funções para origens de dados do Analysis Services?Question: Can I create these roles for Analysis Services data sources?
Resposta: Se tiver importado os dados para o Power BI Desktop, pode fazê-lo.Answer: You can if you imported the data into Power BI Desktop. Se estiver a utilizar uma ligação em direto, não poderá configurar a RLS no serviço Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Isto é definido no modelo do Analysis Services no local.This is defined within the Analysis Services model on-premises.

Pergunta: Posso utilizar a RLS para limitar as colunas ou medidas acessíveis pelos meus utilizadores?Question: Can I use RLS to limit the columns or measures accessible by my users?
Resposta: Não.Answer: No. Se um utilizador tiver acesso a uma linha de dados específica, pode 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-me ocultar dados detalhados, mas dar acesso a dados resumidos nos elementos visuais?Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Resposta: Não. Pode proteger linhas individuais de dados, mas os utilizadores poderão sempre 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.

Próximos passosNext steps

Segurança ao nível da linha (RLS) 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