🔐 Segurança em Nível de Linha (RLS)

🔐 Row-Level Security (RLS)

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

  1. No Power BI Desktop, vá em Modeling → Manage Roles
  2. Clique em Create
  3. Defina o nome da função (ex.: "Vendedores_SP")
  4. Aplique o filtro DAX na tabela correspondente
  1. In Power BI Desktop, go to Modeling → Manage Roles
  2. Click Create
  3. Set the role name (e.g., "Vendedores_SP")
  4. 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

  1. Vá em Modeling → View As
  2. Escolha a função a ser testada
  3. Verifique se o relatório mostra os dados esperados
  1. Go to Modeling → View As
  2. Select the role to be tested
  3. 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:

  1. Acesse o workspace
  2. Vá em Datasets → Security
  3. Escolha a função criada
  4. Adicione usuários ou grupos correspondentes
  1. Access the workspace
  2. Go to Datasets → Security
  3. Select the created role
  4. 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
  • Always test before publishing
  • Combine RLS with governance and data sensitivity

📚 Links Oficiais

📚 Official Links

  • Documentação RLS:
    https://learn.microsoft.com/power-bi/enterprise/service-admin-row-level-security
  • RLS Documentation:
    https://learn.microsoft.com/power-bi/enterprise/service-admin-row-level-security
\n