RLS (Segurança em Nível de Linha) no Servidor de Relatórios do Power BI

Configurar a RLS (Segurança em Nível de Linha) com o Servidor de Relatórios do Microsoft Power BI pode restringir acesso a dados para determinados usuários. Os filtros restringem o acesso a dados no nível da linha e você pode definir filtros nas funções. Se você estiver usando as permissões padrão no Servidor de Relatórios do Power BI, qualquer usuário com permissões de Publicador ou Gerenciador de Conteúdo para o relatório do Power BI poderá atribuir membros a funções para esse relatório.

Você configura a RLS para relatórios importados para o Power BI com o Power BI Desktop. Você também pode configurar a RLS em relatórios que usam DirectQuery, tais como os do SQL Server. Lembre-se de que a RLS não será respeitada se sua conexão de DirectQuery usar a autenticação integrada para leitores de relatórios. Para as conexões dinâmicas do Analysis Services, configure a Segurança em Nível de Linha no modelo local. A opção de segurança não é exibida para conjuntos de dados com conexão dinâmica.

Definir funções e regras no Power BI Desktop

É possível definir funções e regras no Power BI Desktop. Quando você publica no Power BI, ele também publica as definições de função.

Para definir funções de segurança, siga estas etapas.

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

    Observação

    Você não pode definir funções no Power BI Desktop BI para as conexões dinâmicas do Analysis Services. Você precisa fazer isso no modelo do Analysis Services.

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

    Selecione Gerenciar Funções

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

    Selecione Criar

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

    Observação

    Você não pode definir uma função com uma vírgula, por exemplo London,ParisRole.

  5. Em Tabelas, selecione a tabela à qual deseja aplicar uma regra DAX.

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

    Janela Gerenciar funções

    Observação

    Você pode usar o username() nesta expressão. Lembre-se de que username() terá o formato DOMÍNIO\nomedeusuário no Power BI Desktop. Dentro do serviço do Power BI e do Servidor de Relatórios do Power BI, ele está no formato do nome UPN do usuário. Como alternativa, você pode usar userprincipalname(), que sempre retorna o usuário no formato de seu nome UPN, 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.

    Validar expressão DAX

    Observação

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

  8. Selecione Salvar.

Não é possível atribuir usuários a uma função no Power BI Desktop. Você pode atribuí-los no serviço do Power BI. É possível habilitar a segurança dinâmica no Power BI Desktop fazendo uso das funções DAX username() ou userprincipalname() e configurando as relações corretas.

Filtragem cruzada bidirecional

Por padrão, a filtragem de segurança em nível de linha usa filtros unidirecionais, independentemente se as relações forem definidas para unidirecional ou bidirecional. Você pode habilitar manualmente a filtragem cruzada bidirecional com segurança em nível de linha.

  • Selecione a relação e verifique a caixa de seleção Aplicar filtro de segurança em ambos os sentidos.

    Aplicar filtro de segurança

Marque essa caixa ao implementar a segurança de nível de linha dinâmica com base no nome de usuário ou na ID de logon.

Para saber mais, consulte Filtragem cruzada bidirecional usando o DirectQuery no Power BI Desktop e o whitepaper técnico Protegendo o modelo semântico de BI de tabela.

Validar as funções dentro do Power BI Desktop

Depois de criar sua função, você poderá testar os resultados da função no Power BI Desktop.

  1. Na guia Modelagem, selecione Exibir como.

    Selecione Exibir como Funções

    É exibida a janela Exibir como funções, na qual você pode ver as funções que criou.

    Janela Exibir como funções

  2. Selecione a função criada e selecione OK para aplicá-la.

    Os relatórios renderizam somente os dados relevantes para essa função.

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

    Selecione Outro usuário

    É melhor fornecer o nome UPN, é ele que será usado pelo serviço do Power BI e pelo Servidor de Relatórios do Power BI.

    No Power BI Desktop, a opção Outro usuário exibirá resultados diferentes somente se você estiver usando a segurança dinâmica com base nas expressões DAX.

  4. Selecione OK.

    O relatório será renderizado com base no que esse usuário pode ver.

    Observação

    O recurso Exibir como função não funciona para modelos DirectQuery com SSO (logon único) habilitado.

Adicionar membros a funções

Depois de salvar seu relatório no Servidor de Relatórios do Power BI, você gerencia a segurança e adiciona ou remove membros no servidor. Somente usuários com permissões de Publicador ou de Gerenciador de Conteúdo para o relatório têm a opção de segurança de nível de linha disponível e não esmaecida.

Se o relatório não tiver as funções necessárias, você precisará abri-lo no Power BI Desktop, adicionar ou modificar as funções e salvá-lo de volta no Servidor de Relatórios do Power BI.

  1. No Power BI Desktop, salve o relatório no Servidor de Relatórios do Power BI. Você precisa usar a versão do Power BI Desktop para o Servidor de Relatórios do Power BI.

  2. No Servidor de Relatórios do Power BI, selecione as reticências ( ... ) ao lado do relatório.

  3. Selecione Gerenciar>Segurança em Nível de Linha.

    Gerenciar a segurança de nível de linha

    Na página Segurança em nível de linha, você adiciona membros a uma função que você criou no Power BI Desktop.

  4. Para adicionar um membro, selecione Adicionar Membro.

  5. Insira o usuário ou grupo na caixa de texto no formato de nome de usuário (DOMÍNIO\usuário) e selecione as funções que você deseja atribuir a ele. Esse membro deve estar em sua organização.

    Adicionar membro à função

    Dependendo de como o Active Directory estiver configurado, inserir o nome UPN aqui também funciona. Nesse caso, o servidor de relatório mostra o nome de usuário correspondente na lista.

  6. Clique em OK para aplicar.

  7. Para remover membros, marque a caixa ao lado de seus nomes e selecione Excluir. Você pode excluir vários membros de cada vez.

    Excluir membros

UserName () e userprincipalname()

Você pode aproveitar as funções DAX username() ou userprincipalname() dentro de seu conjunto de dados. Você pode usá-las dentro de expressões no Power BI Desktop. Quando você publica seu modelo, ele é usado pelo Servidor de Relatórios do Power BI.

No Power BI Desktop, username() retorna um usuário no formato DOMÍNIO\Usuário e userprincipalname() retorna um usuário no formato user@contoso.com.

No Servidor de Relatórios do Power BI, username() e userPrincipalName() retornam o nome UPN, que é semelhante a um endereço de email.

Se você estiver usando autenticação personalizada no Servidor de Relatórios do Power BI, ele retornará o formato de nome de usuário que você configurou para os usuários.

Considerações e limitações

Veja a seguir uma lista das limitações atuais da segurança em nível de linha nos modelos do Power BI.

Os usuários que tinham relatórios usando a função DAX username() observarão agora o novo comportamento, em que o nome UPN é retornado, exceto ao usar o DirectQuery com segurança integrada. Uma vez que a RLS não é respeitada nesse cenário, o comportamento nesse cenário não apresenta alterações.

Você pode definir a RLS somente nos conjuntos de dados criados com o Power BI Desktop. Se desejar habilitar a RLS para conjuntos de dados criados com o Excel, você deverá primeiro converter os arquivos em arquivos PBIX (Power BI Desktop). Saiba mais sobre conversão de arquivos de Excel.

As conexões ETL (de extração, transformação e carregamento) e DirectQuery são compatíveis usando as credenciais armazenadas. Conexões dinâmicas do Analysis Services e conexões DirectQuery usando a autenticação integrada são tratadas na fonte de dados subjacente.

Se você estiver usando segurança integrada com o DirectQuery, seus usuários poderão observar o seguinte:

  • A RLS é desabilitada e todos os dados são retornados.
  • Os usuários não podem atualizar suas atribuições de função e obtêm um erro na página Gerenciar RLS.
  • Para a função de nome de usuário DAX, você continua a receber o nome de usuário como DOMÍNIO\USUÁRIO.

Os autores de relatório não têm acesso para exibir os dados de relatório no Servidor de Relatórios do Power BI até que eles próprios atribuam funções adequadamente depois de carregar o relatório.

As atribuições de função por meio de associações de grupo só têm suporte quando o Servidor de Relatórios do Power BI é configurado para ser executado com a autenticação NTLM ou Kerberos. Os servidores que estão sendo executados com a Autenticação personalizada ou o Windows Basic precisam de usuários explicitamente atribuídos a funções.

Perguntas frequentes

Posso criar essas funções para fontes de dados do Analysis Services?

Sim, isso é possível se você importou os dados no Power BI Desktop. Se você estiver usando uma conexão dinâmica, não poderá configurar a RLS no serviço do Power BI. A RLS é definida no modelo local do Analysis Services.

Posso usar a RLS para limitar as colunas ou as medidas acessíveis por meus usuários?

Não. Se um usuário tiver acesso a uma linha específica de dados, ele poderá ver todas as colunas de dados dessa linha.

A RLS permite ocultar dados detalhados, mas conceder acesso aos dados resumidos nos visuais?

Não. Você protege linhas individuais de dados, mas os usuários sempre podem ver os detalhes ou os dados resumidos.

Posso adicionar novas funções no Power BI Desktop se eu já tiver funções e membros atribuídos existentes?

Sim, se você já tiver definidas as funções existentes e membros atribuídos no Servidor de Relatórios do Power BI, você poderá criar funções adicionais e republicar o relatório sem afetar as atribuições atuais.

Próximas etapas

O que é o Servidor de Relatórios do Power BI?Manual do administrador

Mais perguntas? Experimente perguntar à Comunidade do Power BI