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.

Notes: 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.