Compartilhar via


RLS (Segurança em Nível de Linha) no Servidor de Relatórios do Power BI

Configurar a RLS (Segurança em Nível de Linha) com o Servidor de Relatórios do Microsoft Power BI pode restringir acesso a dados para determinados usuários. Os filtros restringem o acesso a dados no nível da linha e você pode definir filtros nas funções. Se você estiver usando as permissões padrão no Servidor de Relatórios do Power BI, qualquer usuário com permissões de Publicador ou Gerenciador de Conteúdo para o relatório do Power BI poderá atribuir membros a funções para esse relatório.

Você configura a RLS para relatórios importados para o Power BI com o Power BI Desktop. Você também pode configurar a RLS em relatórios que usam DirectQuery, tais como os do SQL Server. Lembre-se de que a RLS não será respeitada se sua conexão de DirectQuery usar a autenticação integrada para leitores de relatórios. 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.

Definir funções e regras no Power BI Desktop

É possível definir funções e regras no Power BI Desktop. Com esse editor, é possível alternar entre usar a interface suspensa padrão e uma interface DAX. Quando publica no Power BI, você também publica as definições de função.

Para definir funções de segurança:

  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.

    Captura de tela da guia Modelagem, realçando Gerenciar funções.

  3. Na janela Gerenciar funções, selecione Novo para criar uma função.

    Captura de tela da janela Gerenciar funções, realçando o botão Criar nova função.

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

    Captura de tela da janela Gerenciar funções, realçando Renomear uma função.

    Observação

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

  5. Em Selecionar tabelas, selecione a tabela à qual você deseja aplicar um filtro de segurança em nível de linha.

  6. Em Filtrar dados, use o editor padrão para definir suas funções. As expressões criadas retornam um valor verdadeiro ou falso.

    Captura de tela do editor padrão da janela Gerenciar funções para definir a segurança em nível de linha.

    Observação

    Nem todos os filtros de segurança em nível de linha com suporte no Power BI podem ser definidos usando o editor padrão. As limitações incluem expressões que atualmente só podem ser definidas usando DAX, incluindo regras dinâmicas, como username() ou userprincipalname(). Para definir funções usando esses filtros, alterne para usar o editor DAX.

  7. Opcionalmente, selecione Alternar para o editor DAX para alternar para usar o editor DAX para definir sua função. Essas expressões DAX retornam um valor de verdadeiro ou falso. Por exemplo: [Entity ID] = “Value”. O editor DAX é completo, com preenchimento automático para fórmulas (intellisense). É possível selecionar a marca de seleção acima da caixa de expressão para validar a expressão e o botão X acima da caixa de expressão para reverter as alterações.

    Captura de tela da janela Gerenciar funções, realçando um exemplo de expressão DAX.

    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. Além disso, nessa caixa de expressão, use vírgulas para separar argumentos de função DAX, mesmo se você estiver usando uma localidade que normalmente usa separadores de ponto-e-vírgula, como francês ou alemão.

  8. Você pode voltar para o editor padrão selecionando Alternar para o editor padrão. Todas as alterações feitas em qualquer interface do editor persistem ao alternar interfaces quando possível. Ao definir uma função usando o editor DAX que não pode ser definido no editor padrão, se você tentar alternar para o editor padrão, receberá um aviso de que a troca de editores pode resultar na perda de algumas informações. Para manter essas informações, selecione Cancelar e continue editando apenas essa função no editor DAX.

    Captura de tela da caixa de diálogo confirmando a decisão de mudar para o editor padrão.

    Observação

    Nessa caixa de expressão, use vírgulas para separar argumentos de função DAX, mesmo se você estiver usando uma localidade que normalmente usa separadores de ponto-e-vírgula, como francês ou alemão.

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

Filtragem cruzada bidirecional

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. Você pode habilitar manualmente a filtragem cruzada bidirecional com segurança em nível de linha.

  • Selecione a relação e verifique a caixa de seleção Aplicar filtro de segurança em ambos os sentidos.

    Aplicar filtro de segurança

Marque essa caixa ao implementar a segurança de nível de linha dinâmica com base no nome de usuário ou na ID de logon.

Para saber mais, consulte Filtragem cruzada bidirecional usando o DirectQuery no Power BI Desktop e o whitepaper técnico Protegendo o modelo semântico de BI de tabela.

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.

    Captura de tela da guia Modelagem, realçando Exibir como.

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

    Captura de tela da janela Exibir como funções, com Nenhum selecionado.

  2. Selecione uma função que você criou. Em seguida, escolha OK para aplicar essa função.

    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.

    Captura de tela da janela Exibir como funções com um usuário de exemplo inserido.

    É melhor fornecer o nome UPN, pois ele 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. Nesse caso, você precisa incluir o nome de usuário, bem como a função.

  4. Selecione OK.

    O relatório é renderizado com base no que os filtros do RLS permitem que o usuário veja.

    Observação

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

Adicionar membros a funções

Depois de salvar seu relatório no Servidor de Relatórios do Power BI, você gerencia a segurança e adiciona ou remove membros no servidor. Somente usuários com permissões de Publicador ou de Gerenciador de Conteúdo para o relatório têm a opção de segurança de nível de linha disponível e não esmaecida.

Se o relatório não tiver as funções necessárias, você precisará abri-lo no Power BI Desktop, adicionar ou modificar as funções e salvá-lo de volta no Servidor de Relatórios do Power BI.

  1. No Power BI Desktop, salve o relatório no Servidor de Relatórios do Power BI. Você precisa usar a versão do Power BI Desktop para o Servidor de Relatórios do Power BI.

  2. No Servidor de Relatórios do Power BI, selecione as reticências ( ... ) ao lado do relatório.

  3. Selecione Gerenciar>Segurança em Nível de Linha.

    Gerenciar a segurança de nível de linha

    Na página Segurança em nível de linha, você adiciona membros a uma função que você criou no Power BI Desktop.

  4. Para adicionar um membro, selecione Adicionar Membro.

  5. Insira o usuário ou grupo na caixa de texto no formato de nome de usuário (DOMÍNIO\usuário) e selecione as funções que você deseja atribuir a ele. Esse membro deve estar em sua organização.

    Adicionar membro à função

    Dependendo de como o Active Directory estiver configurado, inserir o nome UPN aqui também funciona. Nesse caso, o servidor de relatório mostra o nome de usuário correspondente na lista.

  6. Clique em OK para aplicar.

  7. Para remover membros, marque a caixa ao lado de seus nomes e selecione Excluir. Você pode excluir vários membros de cada vez.

    Excluir membros

UserName () e userprincipalname()

Você pode aproveitar as funções DAX username() ou userprincipalname() dentro de seu conjunto de dados. Você pode usá-las dentro de expressões no Power BI Desktop. Quando você publica seu modelo, ele é usado pelo Servidor de Relatórios do Power BI.

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.

No Servidor de Relatórios do Power BI, username() e userPrincipalName() retornam o nome UPN, que é semelhante a um endereço de email.

Se você estiver usando autenticação personalizada no Servidor de Relatórios do Power BI, ele retornará o formato de nome de usuário que você configurou para os usuários.

Considerações e limitações

Veja a seguir uma lista das limitações atuais da segurança em nível de linha nos modelos do Power BI.

Os usuários que tinham relatórios usando a função DAX username() observarão agora o novo comportamento, em que o nome UPN é retornado, exceto ao usar o DirectQuery com segurança integrada. Uma vez que a RLS não é respeitada nesse cenário, o comportamento nesse cenário não apresenta alterações.

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, você deverá primeiro converter os arquivos em arquivos PBIX (Power BI Desktop). Saiba mais sobre conversão de arquivos de Excel.

As conexões ETL (de extração, transformação e carregamento) e DirectQuery são compatíveis usando as credenciais armazenadas. Conexões dinâmicas do Analysis Services e conexões DirectQuery usando a autenticação integrada são tratadas na fonte de dados subjacente.

Se você estiver usando segurança integrada com o DirectQuery, seus usuários poderão observar o seguinte:

  • A RLS é desabilitada e todos os dados são retornados.
  • Os usuários não podem atualizar suas atribuições de função e obtêm um erro na página Gerenciar RLS.
  • Para a função de nome de usuário DAX, você continua a receber o nome de usuário como DOMÍNIO\USUÁRIO.

Os autores de relatório não têm acesso para exibir os dados de relatório no Servidor de Relatórios do Power BI até que eles próprios atribuam funções adequadamente depois de carregar o relatório.

As atribuições de função por meio de associações de grupo só têm suporte quando o Servidor de Relatórios do Power BI é configurado para ser executado com a autenticação NTLM ou Kerberos. Os servidores que estão sendo executados com a Autenticação personalizada ou o Windows Basic precisam de usuários explicitamente atribuídos a funções.

Perguntas frequentes

Posso criar essas funções para fontes de dados do Analysis Services?

Sim, isso é 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. A RLS é definida no modelo local do Analysis Services.

Posso usar a RLS para limitar as colunas ou as medidas acessíveis por meus usuários?

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.

A RLS permite ocultar dados detalhados, mas conceder acesso aos dados resumidos nos visuais?

Não. Você protege linhas individuais de dados, mas os usuários sempre podem ver os detalhes ou os dados resumidos.

Posso adicionar novas funções no Power BI Desktop se eu já tiver funções e membros atribuídos existentes?

Sim, se você já tiver definidas as funções existentes e membros atribuídos no Servidor de Relatórios do Power BI, você poderá criar funções adicionais e republicar o relatório sem afetar as atribuições atuais.

Mais perguntas? Experimente perguntar à Comunidade do Power BI