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. Com esse editor, é possível alternar entre usar a interface suspensa padrão e uma interface DAX. Quando publica no Power BI, você também publica as definições de função.
Para definir funções de segurança:
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.
Na guia Modelagem, selecione Gerenciar Funções.
Na janela Gerenciar funções, selecione Novo para criar uma função.
Em Funções, forneça um nome para a função e selecione Enter.
Observação
Você não pode definir uma função com uma vírgula, por exemplo
London,ParisRole
.Em Selecionar tabelas, selecione a tabela à qual você deseja aplicar um filtro de segurança em nível de linha.
Em Filtrar dados, use o editor padrão para definir suas funções. As expressões criadas retornam um valor verdadeiro ou falso.
Observação
Nem todos os filtros de segurança em nível de linha com suporte no Power BI podem ser definidos usando o editor padrão. As limitações incluem expressões que atualmente 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.
Opcionalmente, selecione Alternar para o editor DAX para alternar para usar o editor DAX para definir sua função. Essas expressões DAX retornam um valor de verdadeiro ou falso. Por exemplo:
[Entity ID] = “Value”
. O editor DAX é completo, com preenchimento automático para fórmulas (intellisense). É possível selecionar a marca de seleção acima da caixa de expressão para validar a expressão e o botão X acima da caixa de expressão para reverter as alteraçõ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. Além disso, nessa 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, como francês ou alemã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. Ao definir uma função usando o editor DAX que não pode ser definido no editor padrão, se você tentar alternar para o editor padrão, receberá 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.
Observação
Nessa 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, como francês ou alemão.
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.
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.
Na guia Modelagem, selecione Exibir como.
É exibida a janela Exibir como funções, na qual você pode ver as funções que criou.
Selecione uma função que você criou. Em seguida, escolha OK para aplicar essa função.
Os relatórios renderizam somente os dados relevantes para essa função.
Você também pode selecionar Outro usuário e fornecer um determinado usuário.
É melhor fornecer o nome UPN, pois ele 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. Nesse caso, você precisa incluir o nome de usuário, bem como a função.
Selecione OK.
O relatório é renderizado com base no que os filtros do RLS permitem que o usuário veja.
Observação
O recurso Exibir como funções não funciona para modelos de DirectQuery com o 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.
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.
No Servidor de Relatórios do Power BI, selecione as reticências ( ... ) ao lado do relatório.
Selecione Gerenciar>Segurança em 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.
Para adicionar um membro, selecione Adicionar Membro.
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.
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.
Clique em OK para aplicar.
Para remover membros, marque a caixa ao lado de seus nomes e selecione Excluir. Você pode excluir vários membros de cada vez.
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.
Conteúdo relacionado
Mais perguntas? Experimente perguntar à Comunidade do Power BI