Table of Contents
ToggleAjuda - Row Level Security (RLS) e Object Level Security (OLS)
Segurança
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:
- Abra o Power BI Desktop.
- Vá para a “Exibição do Modelo“.
- Selecione a tabela que possui regras de RLS e está conectada via Direct Query.
- Acesse o menu “Avançado”, conforme mostrado na imagem.
- 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.