Para quem já é um pouco mais avançado com Power BI provavelmente já acabou tendo alguma dificuldade para utilizar os filtros de segurança (RLS), fazendo com que eles fiquem dinâmicos e mudem conforme o contexto do usuário logado no relatório, pois o cenário de dados e as regras de negócio exigem que cada usuário tenha algumas permissões específicas para visualizar parte do conjunto de dados e todos esses filtros sejam dinâmicos.
Passo a passo para criar uma base de dados de teste
No primeiro passo, irei criar a tabela de usuários e folha de pagamentos depois vou inserir alguns dados de teste.
Após criar as duas tabelas, irei criar o relacionamento das duas tabelas.
Criando o filtro dinâmico
Para utilizar o contexto do email do usuário que está visualizando o relatório, iremos utilizar a função DAX :
USERPRINCIPALNAME()
Para mais informações sobre a função Link da Documentação e Link da Documentação Microsoft.
Irei criar o filtro na tabela de usuário, onde o usuário logado só irá ver as linhas que correspondem ao seu email.
Criando os visuais para o teste
Após criar a função de segurança com o filtro dinâmico, criei alguns blocos só para visualizar o filtro na prática
Configurando a segurança no Conjunto de Dados
Depois de publicar o relatório no Power BI web, irei configurar a segurança no conjunto de dados para obedecer a regra criada no Power Bi Desktop.
Dentro do Workspace irei ir na aba “Conjunto de dados”, depois clicando nos “três pontinhos”, irá aparecer a opção de segurança
Atribuindo a regra de segurança aos emails
Após clicar na opção “Segurança”, você será redirecionado para esta aba, onde você irá atribuir os emails que irão visualizar o seu relatório para a Role “Acesso”
Por último o resultado
Após todos os procedimentos feitos acima, se logando com a conta “planner@futurum.com.br” temos o seguinte resultado:
Créditos e Links úteis
Microsoft Power BI: Unleash row level security patterns in Power BI — THR3015: https://www.youtube.com/watch?v=dGpX8-4adkY
https://dax.guide/userprincipalname/
Power BI Row-Level Security And Where To Filter: