Segurança ao nível da linha (RLS) com o Power BI

A segurança em nível de linha (RLS) com o Power BI pode ser usada para restringir o acesso a dados para determinados usuários. Os filtros restringem o acesso aos dados no nível da linha e você pode definir filtros dentro das funções. No serviço do Power BI, os usuários com acesso a um espaço de trabalho têm acesso a modelos semânticos nesse espaço de trabalho. A RLS apenas restringe o acesso a dados para usuários com permissões de visualizador . Não se aplica a administradores, membros ou colaboradores.

Você pode configurar a RLS para modelos de dados importados para o Power BI com o Power BI. Você também pode configurar RLS em modelos semânticos que estão usando DirectQuery, como o SQL Server. Para conexões ao vivo do Analysis Services ou do Azure Analysis Services, você configura a segurança em nível de linha no modelo, não no Power BI. A opção de segurança não aparece para modelos semânticos de conexão ao vivo.

Definir funções e regras no Power BI Desktop

Você pode definir funções e regras no Power BI Desktop. Ao publicar no Power BI, você também publica as definições de função.

Para definir funções de segurança:

  1. Importe dados para o relatório do Power BI Desktop ou configure uma conexão DirectQuery.

    Nota

    Não é possível definir funções no Power BI Desktop para conexões em tempo real do Analysis Services. Você precisa fazer isso dentro do modelo do Analysis Services.

  2. Na guia Modelagem, selecione Gerenciar funções.

    Captura de ecrã do separador Modelação, realçando Gerir funções.

  3. Na janela Gerenciar funções, selecione Criar.

    Captura de ecrã da janela Gerir funções, realçando Criar.

  4. Em Funções, forneça um nome para a função.

    Nota

    Não é possível definir uma função com uma vírgula, por exemplo London,ParisRole.

  5. Em Tabelas, selecione a tabela à qual deseja aplicar uma regra DAX (Expressão de Análise de Dados).

  6. Na caixa Expressão DAX do filtro de tabela, insira as expressões DAX. Essa expressão retorna um valor de true ou false. Por exemplo: [Entity ID] = “Value”.

    Captura de tela da janela Gerenciar funções, destacando um exemplo de expressão DAX.

    Nota

    Você pode usar username() dentro desta expressão. Lembre-se de que username() tem o formato de DOMAIN\username no Power BI Desktop. No serviço do Power BI e no Servidor de Relatório do Power BI, ele está no formato UPN (Nome Principal do Usuário) do usuário. Como alternativa, você pode usar userprincipalname(), que sempre retorna o usuário no formato de seu nome principal de usuário, username@contoso.com.

  7. Depois de criar a expressão DAX, selecione a marca de seleção acima da caixa de expressão para validar a expressão.

    Captura de tela da janela de expressão DAX do filtro de tabela, realçando a marca de seleção.

    Nota

    Nesta caixa de expressão, use vírgulas para separar argumentos de função DAX, mesmo se você estiver usando uma localidade que normalmente usa separadores de ponto-e-vírgula (por exemplo, francês ou alemão).

  8. Selecione Guardar.

Não é possível atribuir usuários a uma função no Power BI Desktop. Você os atribui no serviço do Power BI. Você pode habilitar a segurança dinâmica no Power BI Desktop usando as funções DAX username() ou userprincipalname() e tendo as relações adequadas configuradas.

Por padrão, a filtragem de segurança em nível de linha usa filtros unidirecionais, quer as relações estejam definidas como direção única ou bidirecional. Você pode habilitar manualmente a filtragem cruzada bidirecional com segurança em nível de linha selecionando a relação e marcando a caixa de seleção Aplicar filtro de segurança em ambas as direções . Observe que, se uma tabela participar de várias relações bidirecionais, você só poderá selecionar essa opção para uma dessas relações. Selecione esta opção quando também tiver implementado a segurança dinâmica em nível de linha no nível do servidor, onde a segurança em nível de linha é baseada em nome de usuário ou ID de login.

Para obter mais informações, consulte Filtragem cruzada bidirecional usando DirectQuery no Power BI e o artigo técnico Protegendo o Modelo Semântico de BI Tabular.

Captura de ecrã da aplicação do Filtro de Segurança.

Definir funções e regras no Power BI usando o editor de segurança aprimorado em nível de linha (Visualização)

Você pode definir rápida e facilmente funções e filtros de segurança em nível de linha no Power BI usando o editor de segurança aprimorado em nível de linha. Com este editor, você pode alternar entre usar a interface suspensa padrão e uma interface DAX. Ao publicar no Power BI, você também publica as definições de função.

Para definir funções de segurança usando o editor de segurança em nível de linha avançado:

  1. No Power BI Desktop, habilite a visualização acessando os recursos Opções de Arquivos > e Opções > de > Configurações e ative "Editor de segurança aprimorado em nível de linha". Como alternativa, você pode usar esse editor no Serviço editando seu modelo de dados no serviço do Power BI.

  2. Importe dados para seu modelo semântico do Power BI ou configure uma conexão DirectQuery.

  3. Na faixa de opções, selecione Gerenciar funções.

    Captura de ecrã do botão Gerir funções no friso Ambiente de Trabalho.

  4. Na janela Gerenciar funções , selecione Novo para criar uma nova função.

    Captura de ecrã a mostrar a criação de uma nova função no editor de segurança de nível de linha melhorado.

  5. Em Funções, forneça um nome para a função e selecione enter.

    Captura de tela mostrando a renomeação de uma função no editor de segurança de nível de linha avançado.

  6. Em Selecionar tabelas, selecione a tabela à qual pretende aplicar um filtro de segurança ao nível da linha.

  7. Em Filtrar dados, use o editor padrão para definir suas funções. As expressões criadas retornam um valor verdadeiro ou falso.

    Captura de tela de um exemplo de uso do editor padrão no editor de segurança de nível de linha avançado.

    Nota

    Nem todos os filtros de segurança de nível de linha suportados no Power BI podem ser definidos usando o editor padrão. As limitações incluem expressões que hoje só podem ser definidas usando DAX, incluindo regras dinâmicas como username() ou userprincipalname(). Para definir funções usando esses filtros, alterne para usar o editor DAX.

  8. Opcionalmente, selecione Mudar para o editor DAX para alternar para usar o editor DAX para definir sua função. Você pode voltar para o editor padrão selecionando Alternar para o editor padrão. Todas as alterações feitas em qualquer interface do editor persistem ao alternar interfaces quando possível.

    Captura de tela de um exemplo de uso do editor dax no editor de segurança aprimorado em nível de linha.

    Ao definir uma função usando o editor DAX que não pode ser definida no editor padrão, se você tentar alternar para o editor padrão, será solicitado um aviso de que a troca de editores pode resultar na perda de algumas informações. Para manter essas informações, selecione Cancelar e continue editando apenas essa função no editor DAX.

    Captura de tela de um exemplo de caixa de diálogo de erro ao alternar do DAX para o editor padrão no editor de segurança aprimorado em nível de linha.

  9. Selecione Guardar

Validar as funções no Power BI Desktop

Depois de criar suas funções, teste os resultados das funções no Power BI Desktop.

  1. Na guia Modelagem, selecione Exibir como.

    Captura de ecrã do separador Modelação, realçando Ver como.

    A janela Exibir como funções é exibida, onde você vê as funções que criou.

    Captura de ecrã da janela Ver como funções com Nenhuma selecionada.

  2. Selecione uma função que você criou. Em seguida, escolha OK para aplicar essa função.

    O relatório torna os dados relevantes para essa função.

  3. Você também pode selecionar Outro usuário e fornecer um determinado usuário.

    Captura de ecrã da janela Ver como funções com um utilizador de exemplo introduzido.

    É melhor fornecer o UPN (Nome Principal do Usuário) porque é isso que o serviço do Power BI e o Servidor de Relatório do Power BI usam.

    No Power BI Desktop, Outro usuário exibe resultados diferentes somente se você estiver usando segurança dinâmica com base em suas expressões DAX. Nesse caso, você precisa incluir o nome de usuário, bem como a função.

  4. Selecione OK.

    O relatório é renderizado com base no que os filtros RLS permitem que o usuário veja.

    Nota

    O recurso Exibir como funções não funciona para modelos DirectQuery com SSO (Single Sign-On) habilitado.

Gerencie a segurança em seu modelo

Para gerenciar a segurança em seu modelo semântico, abra o espaço de trabalho onde você salvou seu modelo semântico no serviço do Power BI e execute as seguintes etapas:

  1. No serviço Power BI, selecione o menu Mais opções para um modelo semântico. Esse menu aparece quando você passa o mouse sobre um nome de modelo semântico, quer você o selecione no menu de navegação ou na página do espaço de trabalho.

    Captura de tela mostrando o menu de mais opções no espaço de trabalho.

    Captura de ecrã a mostrar o menu de mais opções no menu de navegação.

  2. Selecione Segurança.

    Captura de ecrã a mostrar o menu de mais opções com Segurança selecionada.

A segurança leva-o para a página Segurança ao Nível de Função, onde adiciona membros a uma função que criou. O colaborador (e funções de espaço de trabalho superiores) verá Segurança e poderá atribuir usuários a uma função.

Trabalhar com os membros

Adicionar membros

No serviço do Power BI, você pode adicionar um membro à função digitando o endereço de email ou o nome do usuário ou grupo de segurança. Não é possível adicionar Grupos criados no Power BI. Você pode adicionar membros externos à sua organização.

Você pode usar os seguintes grupos para configurar a segurança em nível de linha.

Observe, no entanto, que os grupos do Microsoft 365 não são suportados e não podem ser adicionados a nenhuma função.

Captura de ecrã a mostrar como adicionar um membro.

Você também pode ver quantos membros fazem parte da função pelo número entre parênteses ao lado do nome da função ou ao lado de Membros.

Captura de tela mostrando os membros na função.

Remover membros

Você pode remover membros selecionando o X ao lado do nome deles.

Captura de ecrã a mostrar como remover um membro.

Validando a função dentro do serviço do Power BI

Você pode validar se a função definida está funcionando corretamente no serviço do Power BI testando a função.

  1. Selecione Mais opções (...) ao lado da função.
  2. Selecione Testar como função.

Captura de tela do teste como opção de função.

Você será redirecionado para o relatório que foi publicado do Power BI Desktop com esse modelo semântico, se ele existir. Os painéis não estão disponíveis para teste usando a opção Testar como função .

No cabeçalho da página, a função que está sendo aplicada é mostrada. Teste outras funções, uma combinação de funções ou uma pessoa específica selecionando Agora visualizando como. Aqui você vê detalhes importantes de permissões referentes ao indivíduo ou função que está sendo testado. Para obter mais informações sobre como as permissões interagem com a RLS, consulte Experiência do usuário da RLS.

Captura de tela da lista suspensa Agora visualizando como para uma pessoa específica.

Teste outros relatórios conectados ao modelo semântico selecionando Visualização no cabeçalho da página. Você só pode testar relatórios localizados no mesmo espaço de trabalho que seu modelo semântico.

Captura de ecrã de Visualização para selecionar um relatório diferente para testar.

Para voltar à visualização normal, selecione Voltar à Segurança em Nível de Linha.

Nota

O recurso Testar como função não funciona para modelos DirectQuery com logon único (SSO) habilitado. Além disso, nem todos os aspetos de um relatório podem ser validados no recurso Testar como função, incluindo visualizações de perguntas e respostas, visualizações de insights rápidos e Copilot.

Usando a função DAX username() ou userprincipalname()

Você pode aproveitar as funções DAX username() ou userprincipalname() em seu conjunto de dados. Você pode usá-los em expressões no Power BI Desktop. Quando você publicar seu modelo, ele será usado no serviço do Power BI.

No Power BI Desktop, username() retornará um usuário no formato DOMAIN\User e userprincipalname() retornará um usuário no formato de user@contoso.com.

No serviço do Power BI, username() e userprincipalname() retornarão o UPN (Nome Principal do Usuário) do usuário. Isso se parece com um endereço de e-mail.

Usando RLS com espaços de trabalho no Power BI

Se você publicar seu relatório do Power BI Desktop em um espaço de trabalho no serviço do Power BI, as funções RLS serão aplicadas aos membros atribuídos à função Visualizador no espaço de trabalho. Mesmo que os Visualizadores recebam permissões de compilação para o modelo semântico, a RLS ainda se aplica. Por exemplo, se os visualizadores com permissões de compilação usarem Analisar no Excel, sua exibição dos dados será restrita pela RLS. Os membros do espaço de trabalho atribuídos a Admin, Membro ou Colaborador têm permissão de edição para o modelo semântico e, portanto, a RLS não se aplica a eles. Se quiser que a RLS se aplique a pessoas em um espaço de trabalho, você só poderá atribuir a elas a função de Visualizador . Leia mais sobre funções em espaços de trabalho.

Considerações e limitações

Você pode ver as limitações atuais para segurança em nível de linha em modelos de nuvem aqui:

  • Se você definiu anteriormente funções e regras no serviço do Power BI, deverá recriá-las no Power BI Desktop.
  • Você pode definir RLS somente nos modelos semânticos criados com o Power BI Desktop. Se quiser habilitar a RLS para modelos semânticos criados com o Excel, você deve converter seus arquivos em arquivos do Power BI Desktop (PBIX) primeiro. Mais informações.
  • As entidades de serviço não podem ser adicionadas a uma função RLS. Assim, a RLS não é aplicada para aplicativos que usam uma entidade de serviço como a identidade efetiva final.
  • Somente conexões Import e DirectQuery são suportadas. As conexões em tempo real com o Analysis Services são tratadas no modelo local.
  • O recurso Testar como função/Exibir como função não funciona para modelos DirectQuery com logon único (SSO) habilitado.
  • O recurso Testar como função/exibição como função mostra apenas relatórios do espaço de trabalho de modelos semânticos.
  • O recurso Testar como função/Exibir como função não funciona para relatórios paginados.

Lembre-se de que, se um relatório do Power BI fizer referência a uma linha com RLS configurada, a mesma mensagem será exibida como para um campo excluído ou inexistente. Para esses usuários, parece que o relatório está quebrado.

FAQ

Pergunta: E se eu tiver criado anteriormente funções e regras para um conjunto de dados no serviço do Power BI? Eles ainda funcionam se eu não fizer nada?
Resposta: Não, os elementos visuais não serão renderizados corretamente. Tem de recriar as funções e regras no Power BI Desktop e, em seguida, publicar no serviço do Power BI.

Pergunta: Posso criar essas funções para fontes de dados do Analysis Services?
Resposta: Sim, se você importou os dados para o Power BI Desktop. Se você estiver usando uma conexão ao vivo, não poderá configurar a RLS no serviço do Power BI. Você define RLS no modelo local do Analysis Services.

Pergunta: Posso usar a RLS para limitar as colunas ou medidas acessíveis pelos meus utilizadores?
Resposta: Não, se um usuário tiver acesso a uma determinada linha de dados, ele poderá ver todas as colunas de dados dessa linha. Para restringir o acesso a colunas e metadados de coluna, considere o uso da segurança no nível do objeto.

Pergunta: A RLS permite-me ocultar dados detalhados, mas dá acesso a dados resumidos em elementos visuais?
Resposta: Não, você protege linhas individuais de dados, mas os usuários sempre podem ver os detalhes ou os dados resumidos.

Pergunta: Minha fonte de dados já tem funções de segurança definidas (por exemplo, funções do SQL Server ou funções do SAP BW). Qual é a relação entre estas funções e a SPI?
Resposta: A resposta depende se você está importando dados ou usando o DirectQuery. Se estiver a importar dados para o conjunto de dados do Power BI, as funções de segurança na origem de dados não são utilizadas. Nesse caso, você deve definir RLS para impor regras de segurança para usuários que se conectam no Power BI. Se você estiver usando o DirectQuery, as funções de segurança em sua fonte de dados serão usadas. Quando um usuário abre um relatório, o Power BI envia uma consulta à fonte de dados subjacente, que aplica regras de segurança aos dados com base nas credenciais do usuário.

Pergunta: Um usuário pode pertencer a mais de uma função?
Resposta: Um usuário pode pertencer a várias funções, e as funções são aditivas. Por exemplo, se um usuário pertencer às funções "Vendas" e "Marketing", ele poderá ver os dados de ambas as funções.

Perguntas? Tente perguntar às Sugestões da Comunidade do Power BI? Contribua com ideias para melhorar o Power BI