Row-Level Security (RLS) permite que diferentes usuários vejam apenas os dados autorizados, com base em filtros definidos diretamente no modelo semântico do Power BI.
Row-Level Security (RLS) allows different users to view only authorized data, based on filters defined directly in the Power BI semantic model.
🔹 Tipos de RLS
🔹 Types of RLS
✔ Estática
✔ Static
Os filtros são fixos dentro da função criada no modelo.
Filters are fixed within the role created in the model.
Exemplo:
Example:
DimRegiao[Estado] = "SP"
DimRegiao[Estado] = "SP"
✔ Dinâmica
✔ Dynamic
Os filtros dependem do usuário conectado, usando funções como USERPRINCIPALNAME().
Filters depend on the logged-in user, using functions like USERPRINCIPALNAME().
Exemplo:
Example:
DimVendedor[Email] = USERPRINCIPALNAME()
DimVendedor[Email] = USERPRINCIPALNAME()
🔹 Como Criar Funções de Segurança
🔹 How to Create Security Roles
No Power BI Desktop, vá em Modeling → Manage Roles
Clique em Create
Defina o nome da função (ex.: "Vendedores_SP")
Aplique o filtro DAX na tabela correspondente
In Power BI Desktop, go to Modeling → Manage Roles
Click Create
Set the role name (e.g., "Vendedores_SP")
Apply the DAX filter to the corresponding table
Exemplo de regra:
Example of a rule:
FatoVendas[Estado] = "SP"
FatoVendas[Estado] = "SP"
🔹 RLS Dinâmico – Exemplo Completo
🔹 Dynamic RLS – Complete Example
Imagine uma dimensão de vendedores:
Imagine a sellers dimension:
Vendedor
Seller
Email
Email
Região
Region
João
João
joao@empresa.com
joao@empresa.com
Sul
South
Maria
Maria
maria@empresa.com
maria@empresa.com
Norte
North
Regra dinâmica:
Dynamic rule:
DimVendedor[Email] = USERPRINCIPALNAME()
DimVendedor[Email] = USERPRINCIPALNAME()
O Power BI fará automaticamente o filtro para o usuário conectado no serviço.
Power BI will automatically apply the filter for the logged-in user in the service.
🔹 Testar RLS no Power BI Desktop
🔹 Test RLS in Power BI Desktop
Vá em Modeling → View As
Escolha a função a ser testada
Verifique se o relatório mostra os dados esperados
Go to Modeling → View As
Select the role to be tested
Check if the report shows the expected data
Isso evita erros antes da publicação.
This helps avoid errors before publishing.
🔹 Configuração no Power BI Service
🔹 Configuration in Power BI Service
Após publicar o dataset:
After publishing the dataset:
Acesse o workspace
Vá em Datasets → Security
Escolha a função criada
Adicione usuários ou grupos correspondentes
Access the workspace
Go to Datasets → Security
Select the created role
Add corresponding users or groups
Lembre-se:
Remember:
RLS não funciona no “Meu Workspace”
Para apps corporativos, recomenda-se workspaces dedicados e governança ativa
RLS does not work in “My Workspace”
For corporate apps, dedicated workspaces and active governance are recommended
🔹 Recomendações Importantes
🔹 Important Recommendations
Armazene usuários em uma tabela de dimensão quando usar RLS dinâmico
Evite relacionamentos bidirecionais
Certifique-se de que a coluna usada no filtro está corretamente relacionada às tabelas fato
Teste sempre antes de publicar
Combine RLS com governança e sensibilidade de dados
Store users in a dimension table when using dynamic RLS
Avoid bidirectional relationships
Make sure the column used in the filter is properly related to fact tables