RLS (Row-Level Security) garante que cada usuário veja apenas os dados que deve ver — sem precisar criar um relatório por usuário. O gerente da região Sul vê os dados do Sul; o gerente do Norte vê apenas o Norte. Um único relatório, permissões diferentes.
RLS estático: papéis fixos
No Power BI Desktop, vá em Modelagem → Gerenciar Funções.
- Clique em Criar. Dê um nome ao papel (ex: "Região Sul").
- Selecione a tabela de dimensão de região.
- Escreva o filtro DAX:
[Região] = "Sul" - Repita para cada papel.
Depois de publicar, no Power BI Service: acesse o conjunto de dados → Segurança → adicione os usuários a cada papel.
RLS dinâmico: um papel para todos
O RLS dinâmico usa a função USERPRINCIPALNAME() do DAX para filtrar os dados com base no e-mail do usuário logado. Você precisa de uma tabela de mapeamento no modelo:
Tabela PermissõesUsuario com colunas Email e Região:
Email | Região
[email protected] | Sul
[email protected] | Norte
[email protected] | Sul
Crie um relacionamento entre PermissõesUsuario[Região] e a dimensão de Região.
Em Gerenciar Funções, crie um papel "Usuário" com o filtro na tabela de permissões:
[Email] = USERPRINCIPALNAME()
Agora um único papel controla tudo. Para adicionar acesso, basta atualizar a tabela de permissões — sem reconfigurar o RLS.
Testando o RLS no Desktop
Modelagem → Exibir como → selecione um papel. O relatório é exibido exatamente como aquele papel veria — ótimo para validar antes de publicar.
Administradores vs. membros do papel
No Power BI Service, quem é Administrador, Membro ou Colaborador do workspace vê todos os dados — RLS não se aplica a eles. RLS aplica-se apenas a usuários com permissão "Visualizador" ou que recebem o relatório por compartilhamento.
Perguntas frequentes
Posso aplicar RLS em campos calculados?
Sim. O filtro DAX no papel pode usar qualquer expressão DAX válida, incluindo funções e comparações complexas.
RLS afeta o desempenho?
Ligeiramente, pois o Power BI adiciona o filtro do papel a cada consulta. Com um modelo bem estruturado (estrela), o impacto é mínimo. Com modelos complexos e muitos relacionamentos, pode ser mais perceptível.