Ajuda – Row Level Security (RLS) e Object Level Security (OLS)

Ajuda - Row Level Security (RLS) e Object Level Security (OLS)

Segurança

Segurança a nível de linhas é amplamente utilizada para aplicar filtros nos modelos de dados e garantir que os usuários vejam apenas as informações pertinentes. No Power Embedded, oferecemos suporte tanto para RLS (Row-Level Security) quanto para OLS (Object-Level Security). Abaixo estão algumas informações para ajudar no entendimento.

Tipos de RLS

Segurança estática

Para empresas que precisam ou gostariam de criar várias roles e utilizar uma role de acordo com o usuário que está acessando, sem a necessidade de ter uma tabela no modelo com os usuários e permissões, existe a segurança estática, que é mais simples de configurar, mas apresenta performance pior e é mais difícil de gerenciar as permissões.

Nesse formato, você irá visualizar a lista das roles que existem no modelo e poderá associar os usuários ou grupos que serão filtrados por essa role.

Aqui está um print das regras criadas no Power BI Desktop. Existem duas regras criadas: ‘Alimentos’ e ‘Bebidas’. Isso significa que se um usuário for atribuído à regra de alimentos, ele só poderá visualizar dados relacionados a alimentos.



Ao publicar o relatório, ao acessar “Ações” > “Segurança”, o Power Embedded automaticamente identifica as regras criadas. Você pode então atribuir essas regras aos usuários conforme necessário.



Quando o usuário marcos acessar o relatório ele só vai ver a as informações relacionadas a alimentos.



Segurança Dinâmica

Com a Segurança Dinâmica, você pode definir uma ou mais roles e elas serão aplicadas automaticamente para todos os usuários que acessem o relatório. Essa é a recomendação de boas práticas para melhor gerenciamento de regras e performance.

Nesse formato, a role/função criada no Power BI Desktop, receberá o e-mail do usuário que está acessando o relatório (utilizando as funções USERNAME() ou USERPRINCIPALNAME()) e será responsável por realizar os filtros utilizando esse e-mail, com base nas regras criadas.

 



Nessa forma de aplicar os filtros automaticamente de acordo com o usuário, é necessário manter no seu modelo uma tabela com os usuários e permissões de acordo com a regra do RLS ou OLS.

A tabela abaixo exemplifica um modelo contendo as informações de e-mails dos gerentes de um determinado relatório.



Relacionamento entre as tabelas, ou seja sua tabela vai estar vinculada a uma fato que contém as informações.



Ao publicar essa relatório, a regra passa a ser visualizada no portal, é só selecionar a mesma e a regra será aplicada, diferente da estática aqui você não atribui um usuário a regra, somente clica na regra que deseja aplicar.



Relatório normal sem a regra existentes:

Relatório com regra de rls existente no modelo utilizando  a RLS dinâmica:

  

A regra de RLS é aplicada utilizando a função UserPrincipalName() para identificar qual usuário está logado e realizar o filtro nas outras tabelas também, ou seja o usuário só consegue visualizar as informações pertinentes a ele.

Observação: Quando criar uma regra de RLS, é necessário associá-la a um usuário, caso contrário ele não conseguirá visualizar os relatórios, e uma mensagem como esta será exibida.

Rls com Direct query no Power BI

Se você se deparar com o erro abaixo ao tentar acessar o relatório, é muito provável que a tabela que contém a regra de RLS esteja utilizando a conexão Direct Query.

O Direct Query é amplamente utilizado para acessar dados em tempo real. No entanto, é importante destacar que as regras de Row-Level Security (RLS) não se aplicam diretamente às tabelas conectadas via Direct Query no Power BI. Isso acontece porque a configuração dessas regras, quando se utiliza Direct Query, deve ser feita no nível do banco de dados, e não no Power BI. Por isso, é importante alterar a conexão da tabela para os modos Import ou Dual, caso seja necessário aplicar essas regras.

Para alterar a conexão da tabela, siga os passos abaixo:

  1. Abra o Power BI Desktop.
  2. Vá para a “Exibição do Modelo“.
  3. Selecione a tabela que possui regras de RLS e está conectada via Direct Query.
  4. Acesse o menu “Avançado”, conforme mostrado na imagem.
  5. Altere o modo de armazenamento para “Importar” ou “Dual”.

Ao seguir o passo a passo anterior, um aviso como o mostrado na imagem aparecerá na tela. Basta clicar em “OK” e prosseguir. Após realizar esse processo, é só publicar o relatório novamente.

Agora irá conseguir ver suas informações.