Restringir o acesso a objetos de modelo do Power BI

Concluído

Como modelador de dados, você pode considerar restringir o acesso do usuário a objetos de modelo do Power BI. A OLS (segurança no nível do objeto) pode restringir o acesso a tabelas e colunas específicas e seus metadados. Normalmente, você aplica a OLS para proteger objetos que armazenam dados confidenciais, como dados pessoais de funcionários.

Quando o Power BI impõe a OLS, ele não só restringe o acesso a tabelas e colunas, mas também pode proteger metadados. Quando você protege metadados, não é possível recuperar informações sobre tabelas e colunas protegidas usando DMVs (exibições de gerenciamento dinâmico).

Importante

Modelos tabulares podem ocultar tabelas e colunas (e outros objetos) usando uma perspectiva. Uma perspectiva define subconjuntos de objetos de modelo que podem ser exibidos para ajudar a fornecer um foco específico para os autores do relatório. As perspectivas têm a finalidade de reduzir a complexidade de um modelo, ajudando os autores do relatório a encontrar recursos de interesse. No entanto, as perspectivas não são um recurso de segurança, porque não protegem os objetos. Um usuário ainda pode consultar uma tabela ou coluna que não esteja visível para ele.

Considere um exemplo na Adventure Works. Essa organização tem uma tabela de dimensões de data warehouse chamada DimEmployee. A tabela inclui colunas que armazenam o nome, o telefone, o endereço de email e o salário dos funcionários. Embora os consumidores do relatório geral possam ver o nome e os detalhes de contato do funcionário, eles não devem ser capazes de ver valores salariais. Somente funcionários seniores do setor de Recursos Humanos têm permissão para ver os valores salariais. Sendo assim, o modelador de dados usou a OLS para conceder acesso à coluna de salário apenas a funcionários específicos de Recursos Humanos.

Captura de tela que mostra uma exibição de diagrama de modelo da tabela Funcionário com a coluna Salário restrita.

A OLS é um recurso herdado do AAS (Azure Analysis Services) e do SSAS (SQL Server Analysis Services). O recurso está disponível no Power BI Premium para fornecer compatibilidade com versões anteriores para modelos migrados para o Power BI. Por esse motivo, não é possível configurar completamente a OLS no Power BI Desktop.

Configurar a OLS

Para configurar a OLS, comece criando funções. Você pode criar funções no Power BI Desktop da mesma maneira que faz ao configurar a RLS. Em seguida, você precisa adicionar regras de OLS às funções. Essa funcionalidade não é compatível com o Power BI Desktop, portanto, você precisará adotar uma abordagem diferente.

Adicione regras de OLS a um modelo do Power BI Desktop usando um ponto de extremidade XMLA (XML for Analysis). Os pontos de extremidade XMLA estão disponíveis no Power BI Premium e fornecem acesso ao mecanismo do Analysis Services no serviço do Power BI. O ponto de extremidade de leitura/gravação dá suporte ao gerenciamento de conjuntos de dados, ao gerenciamento de ciclo de vida do aplicativo, à modelagem de dados avançada e muito mais. Você pode usar APIs habilitadas para ponto de extremidade XMLA para script, como Linguagem de Script do Modelo Tabular (TMSL) ou o módulo SqlServer do PowerShell. Ou você pode usar uma ferramenta de cliente, como o SSMS. Também há opções de ferramentas de terceiros, como o Editor Tabular, que é uma ferramenta de software livre para criar, manter e gerenciar modelos.

Por padrão, todas as tabelas e colunas do modelo não são restritas. Você pode defini-las como Nenhum ou Leitura. Quando definidas como Nenhum, os usuários associados à função não podem acessar o objeto. Quando definidas como Leitura, os usuários associados à função podem acessar o objeto. Quando estiver restringindo colunas específicas, verifique se a tabela não está definida como Nenhum.

Após adicionar as regras de OLS, você pode publicar o modelo no serviço do Power BI. Use o mesmo processo para a RLS para mapear as contas e os grupos de segurança para as funções.

Considerações

Em um relatório do Power BI, quando um usuário não tiver permissão para acessar uma tabela ou coluna, ele receberá uma mensagem de erro. A mensagem informará a ele que o objeto não existe.

Captura de tela mostra uma mensagem de erro do Power BI Desktop quando um visual de relatório tenta consultar uma coluna restrita.

Considere cuidadosamente se a OLS é a solução certa para seu projeto. Quando um usuário abre um relatório do Power BI que consulta um objeto restrito (para ele), a mensagem de erro pode ser confusa e resultará em uma experiência negativa. Para ele, parece que o relatório está incorreto. Pode ser uma abordagem melhor criar um conjunto separado de modelos ou relatórios para os diferentes requisitos do consumidor do relatório.

Restrições

Existem algumas restrições a serem observadas ao implementar a OLS.

Você não pode misturar a RLS e a OLS na mesma função. Se você precisar aplicar a RLS e a OLS no mesmo modelo, crie funções separadas dedicadas a cada tipo. Além disso, você não poderá definir a segurança no nível da tabela se isso interromper uma cadeia de relacionamentos. Por exemplo, se houver relações entre as tabelas A e B e B e C, você não poderá proteger a tabela B. Se a tabela B for protegida, uma consulta à tabela A não poderá transitar entre as relações entre as tabelas A e B e B e C. Nesse caso, você pode configurar uma relação separada entre as tabelas A e C.

Diagrama mostra o exemplo de relação descrito no parágrafo anterior.

No entanto, relações de modelo que fazem referência a uma coluna protegida funcionarão desde que a tabela da coluna não esteja protegida.

Por fim, embora não seja possível proteger medidas, uma medida que faz referência a objetos protegidos é restrita automaticamente.

Para saber mais, confira Segurança no nível do objeto.