RLS (segurança em nível de linha) com o 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. Os filtros restringem o acesso a dados no nível da linha e você pode definir filtros nas funções. No serviço do Power BI, os membros de um workspace têm acesso a conjuntos de dados no workspace. A RLS não restringe esse acesso a dados.

É 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, como o SQL Server. Para conexões dinâmicas dos Analysis Services ou do Azure Analysis Services, configure a segurança no nível da linha no modelo, não no Power BI Desktop. A opção de segurança não será 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. 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.

  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, nome de usuário@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.

Por padrão, a filtragem de segurança no nível da linha usa filtros unidirecionais, estejam as relações definidas como unidirecionais ou bidirecionais. Habilite manualmente a filtragem cruzada bidirecional com a segurança no nível da linha selecionando a relação e marcando a caixa de seleção Aplicar filtro de segurança em ambas as direções. Selecione essa opção quando também tiver implementado a segurança dinâmica no nível da linha no nível do servidor, em que a segurança no nível da linha se baseia no nome de usuário ou na ID de logon.

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.

Aplicar filtro de segurança

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.

Depois de concluir a validação das funções no Power BI Desktop, vá em frente e publique seu relatório no serviço do Power BI.

Gerenciar a segurança no modelo

Para gerenciar a segurança no seu modelo de dados, abra o workspace em que você salvou o relatório no serviço do Power BI e execute as seguintes etapas:

  1. No serviço do Power BI, selecione o menu Mais opções para um conjunto de dados. Esse menu é exibido quando você passa o mouse sobre um nome de conjunto de dados, independentemente de selecioná-lo no menu de navegação ou na página do workspace.

    Menu Mais opções no workspace

    Menu Mais opções no menu de navegação

  2. Selecione Segurança.

    Selecionar segurança no menu mais opções

A segurança levará você até a página da Role-Level Security, na qual se adiciona os membros a uma função criada no Power BI Desktop. Somente os proprietários do conjunto de dados verão a opção Segurança. Se o conjunto de dados estiver em um Grupo, somente os administradores do grupo encontrarão a opção de segurança.

Você só pode criar ou modificar funções no Power BI Desktop.

Trabalhando com membros

Adicionar membros

No serviço do Power BI, adicione um membro à função digitando o endereço de email, o nome do usuário ou o grupo de segurança. Não é possível adicionar Grupos criados no Power BI. Você pode adicionar membros externos à sua organização.

Você pode usar os grupos a seguir para configurar a segurança em nível de linha.

  • Grupo de distribuição
  • Grupo habilitado para email
  • Grupo de Segurança

No entanto, observe que os grupos do Office 365 não são compatíveis e não podem ser adicionados a nenhuma função.

Adicionar um membro

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.

Membros na função

Remover membros

É possível remover membros selecionando o X ao lado do nome.

Remover membro

Validando a função no serviço do Power BI

Teste a função no serviço do Power BI para validar se ela está funcionando corretamente.

  1. Selecione Mais opções (...) ao lado da função.
  2. Selecione Testar dados como função

Testar como função

Você verá os relatórios que estão disponíveis para essa função. Os dashboards não são mostrados nessa exibição. No cabeçalho da página, a função que está sendo aplicada é mostrada.

Exibindo agora como <função>

Para testar outras funções ou uma combinação de funções, selecione Exibindo agora como.

Testar outras funções

Você pode optar por exibir dados como uma pessoa específica ou pode selecionar uma combinação de funções disponíveis para confirmar se elas estão funcionando.

Para retornar à exibição normal, selecione Voltar à Segurança de Nível de Linha.

Usando a função DAX username() ou userprincipalname()

Você pode tirar proveito das 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ê publicar seu modelo, ele será usado no serviço 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 serviço do Power BI, username() e userprincipalname() retornam o nome UPN do usuário. Isso se parece com um endereço de email.

Usando RLS com workspaces no Power BI

Se você publicar seu relatório do Power BI Desktop em uma nova experiência do workspace no serviço do Power BI, as funções de RLS serão aplicadas aos membros a quem foi atribuída a função de Espectador no workspace. Mesmo que os Espectadores recebam permissões Criar para o conjunto de dados, a RLS ainda será aplicada. Por exemplo, se os Espectadores com permissões de Build usarem Analisar no Excel, a exibição dos dados será protegida pela RLS. Os membros do workspace com atribuição de Administrador, Membro ou Colaborador têm permissão de edição para o conjunto de dados. Portanto, a RLS não se aplica a eles. Se desejar que a RLS se aplique às pessoas de um workspace, atribua a todas a função de Espectador. Leia mais sobre as funções nos novos workspaces.

Aviso

Se você configurou um workspace clássico para que os membros tenham permissão de edição, as funções RLS não são aplicadas a eles. Os usuários podem ver todos os dados. Leia mais sobre os workspaces clássicos.

Configurações de grupo

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.

  • Há suporte apenas para conexões de Importação e DirectQuery. Conexões dinâmicas do Analysis Services são tratadas no modelo local.

Problemas conhecidos

Há um problema conhecido em que você recebe uma mensagem de erro quando tenta publicar um relatório publicado anteriormente no Power BI Desktop. O cenário é descrito a seguir:

  1. Sara tem um conjunto de dados que foi publicado no serviço do Power BI e ela configurou a RLS.

  2. Sara atualiza o relatório no Power BI Desktop e o publica novamente.

  3. Sara recebe um erro.

Solução alternativa: publique novamente o arquivo do Power BI Desktop no serviço do Power BI até que esse problema seja resolvido. Você pode fazer isso selecionando Obter Dados > Arquivos.

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