Restringir o acesso a dados com a RLS (Segurança em Nível de Linha) no Power BI Desktop

APLICA-SE AO: ✔️ Power BI Desktop ❌ Serviço do Power BI

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. Os filtros restringem os dados no nível da linha. É possível definir filtros nas funções.

Agora é possível configurar a RLS de modelos de dados importados para o Power BI com o Power BI Desktop. Você também pode configurar RLS em conjuntos de dados que estão usando DirectQuery, assim como o SQL Server. Anteriormente, você conseguia apenas implementar a RLS nos modelos do Analysis Services local fora do Power BI. Para as conexões dinâmicas do Analysis Services, configure a Segurança em nível de linha no modelo local. A opção de segurança não é exibida para conjuntos de dados com conexão dinâmica.

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. Saiba mais sobre as opções da RLS no serviço do Power BI.

Definir funções e regras no Power BI Desktop

É possível definir funções e regras no Power BI Desktop. Quando você publica no Power BI, ele também publica as definições de função.

Para definir funções de segurança, siga estas etapas.

  1. Importe os dados para o relatório do Power BI Desktop ou configure uma conexão do DirectQuery.

    Observação

    Você não pode definir funções no Power BI Desktop BI para as conexões dinâmicas do Analysis Services. Você precisa fazer isso no modelo do Analysis Services.

  2. Na guia Modelagem, selecione Gerenciar Funções.

    Selecione Gerenciar Funções

  3. Na janela Gerenciar funções, selecione Criar.

    Selecione Criar

  4. Em Funções, forneça um nome para a função.

    Observação

    Você não pode definir uma função com uma vírgula, por exemplo London,ParisRole.

  5. Em Tabelas, selecione a tabela à qual deseja aplicar uma regra DAX.

  6. Na caixa Expressão DAX da tabela de filtro, insira as expressões DAX. Essa expressão retorna um valor de verdadeiro ou falso. Por exemplo: [Entity ID] = “Value”.

    Janela Gerenciar funções

    Observação

    Você pode usar o username() nesta expressão. Lembre-se de que username() terá o formato DOMÍNIO\nomedeusuário no 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. Como alternativa, você pode usar userprincipalname(), que sempre retorna o usuário no formato de seu nome UPN, username@contoso.com.

  7. Depois de criar a expressão DAX, selecione a marca de seleção acima da caixa de expressão para validar a expressão.

    Validar expressão DAX

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

  8. Selecione Salvar.

Não é possível atribuir usuários a uma função no Power BI Desktop. Você pode atribuí-los no serviço do Power BI. É 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.

Validar as funções dentro do Power BI Desktop

Depois de criar sua função, você poderá testar os resultados da função no Power BI Desktop.

  1. Na guia Modelagem, selecione Exibir como.

    Selecione Exibir como Funções

    É exibida a janela Exibir como funções, na qual você pode ver as funções que criou.

    Janela Exibir como funções

  2. Selecione a função criada e selecione OK para aplicá-la.

    Os relatórios renderizam somente os dados relevantes para essa função.

  3. Você também pode selecionar Outro usuário e fornecer um determinado usuário.

    Selecione Outro usuário

    É melhor fornecer o nome UPN, é ele que será usado pelo serviço do Power BI e pelo Servidor de Relatórios do Power BI.

    No Power BI Desktop, a opção Outro usuário exibirá resultados diferentes somente se você estiver usando a segurança dinâmica com base nas expressões DAX.

  4. Selecione OK.

    O relatório será renderizado com base no que esse usuário pode ver.

    Observação

    O recurso Exibir como função não funciona para modelos do DirectQuery com o SSO (logon único) habilitado.

Considerações e limitações

As limitações atuais da segurança no nível de linha nos modelos de nuvem são as seguintes:

  • Se você definiu funções e regras anteriormente no serviço do Power BI, deverá criá-las novamente no Power BI Desktop.
  • Você pode definir a RLS somente nos conjuntos de dados criados com o 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). Saiba mais.
  • Não é possível adicionar entidades de serviço a uma função de RLS. Portanto, a RLS não será aplicada a aplicativos que usam uma entidade de serviço como identidade final efetiva.
  • Há suporte apenas para conexões de Importação e DirectQuery. Conexões dinâmicas do Analysis Services são tratadas no modelo local.
  • O recurso Testar como função/Exibir como função não funciona para modelos DirectQuery com o SSO (logon único) habilitado.

Perguntas frequentes

Pergunta: E se eu já tiver criado funções e regras para um conjunto de dados no serviço do Power BI? Elas ainda funcionariam se eu não fizesse nada?
Resposta: Não, os visuais não seriam renderizados corretamente. Você precisará recriar as funções e regras no Power BI Desktop e, em seguida, publicá-las no serviço do Power BI.

Pergunta: Posso criar essas funções para fontes de dados do Analysis Services?
Resposta: Sim, é possível se você importou os dados no Power BI Desktop. Se você estiver usando uma conexão dinâmica, não poderá configurar a RLS no serviço do Power BI. Isso é definido no modelo local do Analysis Services.

Pergunta: Posso usar a RLS para limitar as colunas ou as medidas acessíveis por meus usuários?
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.

Pergunta: A RLS permite ocultar dados detalhados, mas conceder acesso aos dados resumidos nos visuais?
Resposta: Não. Você protege linhas individuais de dados, mas os usuários sempre podem ver os detalhes ou os dados resumidos.

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). Qual é a relação entre essas funções e a RLS?
Resposta: a resposta depende de você estar importando dados ou usando o 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. Nesse caso, você deve definir a RLS para impor regras de segurança para usuários que se conectam ao Power BI. Se você estiver usando o DirectQuery, as funções de segurança em sua fonte de dados serão usadas. 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.

Próximas etapas

Para obter mais informações relacionadas a este artigo, confira os seguintes recursos: