M365Con 2027 – conferência online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Implementação de Row-Level Security Dinâmica no Power BI e no Microsoft Fabric: Arquitetura, Padrões DAX e Governança de Nível Empresarial

By · · Updated

Implemente row-level security dinâmica no Power BI e no Microsoft Fabric para controlar o acesso dos usuários aos dados, garantir conformidade e se adaptar às mudanças na organização.

Automatically translated with AI from the original post. Read the English original

▶ BLOGImplementing DynamicRow-Level Security in…M365.FM
Titelbild: Implementing Dynamic Row-Level Security in Power BI and Microsoft Fabric: Architecture, DAX Patterns, and Enterprise-Grade Governance

Você deve pensar na Row-Level Security Dinâmica como um sistema que pode mudar. Ela cresce e se transforma junto com a sua organização. O design do modelo de dados, as expressões DAX, a identidade do usuário e a governança ajudam a definir como a segurança funciona no Power BI e no Microsoft Fabric. Se você configurar isso da maneira certa, poderá decidir quem tem acesso a determinados dados.

Área-chave

Impacto na RLS

Segurança dinâmica

Filtra os dados por usuário, usando DAX no modelo

Governança

Garante que o acesso siga as regras e permaneça seguro

Design do modelo

Permite controlar quem vê dados sensíveis

Principais conclusões

Repensando os sistemas de Row-Level Security

Segurança como um sistema orientado pelo modelo

A row-level security é um sistema que conecta diferentes partes da sua plataforma de análise. Ao criar o modelo de dados, você já começa a construir a segurança dos dados. A forma como você configura as tabelas, as conecta e cria as funções altera a maneira como as pessoas veem os dados. Se a sua empresa crescer ou novas equipes entrarem, será preciso atualizar as regras de segurança. A row-level security não é algo que você configura uma vez e esquece. Ela muda conforme o seu negócio muda e atende a novas necessidades.

Dica: revise o seu modelo de dados com frequência. Um bom modelo facilita a segurança e ajuda você a evitar erros.

O seu modelo deve ter relações claras e tabelas de segurança específicas. Isso permite controlar quem vê determinados dados e mantém os dados privados protegidos. A row-level security dinâmica pode associar o que cada usuário vê ao seu grupo ou à sua função no Fabric. Assim, você consegue alterar as permissões rapidamente quando a empresa muda.

Row-Level Security estática vs. dinâmica

Existem duas formas principais de configurar a segurança dos dados: row-level security estática e dinâmica. A segurança estática usa regras fixas. Você cria funções e filtros para cada grupo. Isso funciona bem para equipes pequenas ou quando o acesso não muda com frequência. A row-level security dinâmica usa a identidade do usuário conectado e tabelas de mapeamento. Ela verifica o usuário e altera imediatamente os dados que ele vê. É a melhor opção para grandes empresas com muitos usuários e regras em constante mudança.

Aqui está uma tabela com as diferenças:

Recurso

RLS (estática)

DLS (dinâmica)

Flexibilidade

Baixa

Alta

Configuração

Funções manuais

Baseada em regras com mapeamento de usuários

Melhor caso de uso

Poucos usuários / acesso fixo

Muitos usuários / acesso personalizado

A row-level security dinâmica oferece mais formas de controlar o acesso. Ela usa recursos como USERPRINCIPALNAME() e tabelas de mapeamento para associar cada usuário aos dados corretos. A segurança estática é simples, mas não funciona bem quando a empresa cresce ou muda muito.

Para manter seus dados protegidos, escolha a abordagem mais adequada às suas necessidades. Um bom planejamento e um modelo sólido ajudam a proteger dados privados e a manter suas análises seguras.

Padrões de Row-Level Security dinâmica no Fabric

Funções DAX: USERPRINCIPALNAME() vs. USERNAME()

É importante entender como a identidade funciona no Fabric. Duas funções principais ajudam a configurar a row-level security: USERPRINCIPALNAME() e USERNAME(). Ambas identificam quem está visualizando o relatório. USERPRINCIPALNAME() retorna o e-mail do usuário na nuvem. USERNAME() normalmente retorna o nome de uma conta local, principalmente no Power BI Desktop. Se você usar USERNAME() na nuvem, ele pode não funcionar corretamente, o que pode tornar seus dados menos seguros.

Dica: use sempre USERPRINCIPALNAME() para segurança em nível de linha dinâmica no Fabric. Essa função corresponde ao e-mail de nuvem do usuário e mantém seus dados protegidos.

Função

Retorna

Melhor caso de uso

USERPRINCIPALNAME()

Endereço de e-mail na nuvem

Fabric, Power BI na nuvem

USERNAME()

Nome da conta local

Apenas para testes no Desktop

Se você usar a função errada, os usuários poderiam ver dados que não deveriam. Você precisa testar sua segurança na nuvem, e não apenas no Desktop.

Padrões e antipadrões seguros de DAX

Você quer que seus dados permaneçam seguros. Precisa de padrões DAX sólidos para segurança em nível de linha dinâmica. A melhor forma é usar tabelas de mapeamento e regras dinâmicas. Isso permite controlar quem pode ver o quê.

Um bom padrão DAX usa uma pesquisa para associar os usuários ao seu grupo. Isso funciona bem para empresas com muitos grupos. Veja um bom exemplo:

Organizations[Id] = LOOKUPVALUE(
    AspNetUsers[OrganizationId],
    AspNetUsers[Email],
    USERPRINCIPALNAME()
)

Esse padrão verifica o e-mail do usuário e encontra o grupo dele. Você pode usar isso para mostrar apenas os dados certos. Essa abordagem é melhor do que apenas comparar e-mails. Ela funciona bem à medida que a empresa cresce e mantém seus dados protegidos.

Nota: não coloque e-mails fixos no código nem use colunas calculadas para controle de acesso. Essas abordagens podem quebrar se os usuários mudarem ou se a empresa crescer.

Alguns padrões ruins podem causar vazamentos de dados:

Você deve sempre usar regras dinâmicas e tabelas de mapeamento. Isso mantém seu modelo de dados simples e seus dados protegidos.

Hierarquias e a função PATH()

Às vezes você precisa de segurança para gerentes, equipes ou departamentos. Hierarquias ajudam a fazer isso. A função PATH() no DAX permite criar vínculos pai-filho. Você pode usar isso para controlar quem vê o quê em cada nível.

Por exemplo, você pode criar uma tabela com os IDs de funcionários e de gerentes. A PATH() monta uma cadeia de cada colaborador até o seu chefe. Depois, use DAX para filtrar os dados de cada nível.

PATH(Employee[EmployeeID], Employee[ManagerID])

Essa função ajuda a configurar segurança em nível de linha dinâmica para grandes empresas. Você pode permitir que gerentes vejam os dados de suas equipes. Também pode impedir que colaboradores comuns vejam informações demais.

Dica: use PATH() para segurança com hierarquias. Isso torna seu modelo de dados flexível e mantém seus dados protegidos.

Você pode usar filtros de linha, máscaras de coluna e funções de hierarquia em conjunto. Isso ajuda a proteger dados privados e a controlar o acesso à medida que a empresa cresce.

Arquitetura de funções e relacionamentos

Design de tabelas de segurança

Você precisa criar tabelas de segurança para a segurança em nível de linha dinâmica. Essas tabelas mostram quais usuários podem ver quais dados. Use colunas para e-mail do usuário, grupo e nível de acesso. Essa estrutura ajuda a manter os dados seguros à medida que a empresa cresce.
Ao criar funções, mantenha funções restritas e funções abertas separadas. Se uma função permitir que alguém veja tudo, outras funções com segurança em nível de linha podem não funcionar corretamente. Impeça que as funções entrem em conflito entre si para manter os dados seguros.

Relacionamentos no modelo de dados

A forma como você constrói o modelo de dados muda a forma como controla o acesso. Use relacionamentos unidirecionais entre as tabelas. Isso deixa o modelo simples e ajuda a evitar erros.
É melhor usar tabelas de segurança específicas do que colocar permissões nas tabelas de fatos. Você pode vincular a tabela de segurança a outras tabelas, como departamento ou região. Assim, é possível filtrar os dados de cada usuário ou grupo.

Dica: use tabelas ponte para vincular usuários aos dados. Isso ajuda a segurança em nível de linha dinâmica a funcionar e mantém seus dados protegidos.

Granularidade de funções: funções pequenas x funções grandes

Você precisa decidir o nível de detalhe dos seus papéis. Papéis pequenos dão mais controle. Você pode conceder acesso por função ou por grupo. Papéis grandes abrangem mais pessoas, mas podem ser arriscados se as coisas mudarem.
Verifique com frequência quem tem cada papel. Isso mantém seus dados seguros e permite fazer ajustes quando necessário.
Escolha papéis pequenos para mais controle e atualizações mais fáceis. Papéis grandes podem funcionar em grupos simples, mas podem causar problemas em empresas grandes.

Atribuições de usuários e grupos no Fabric

Grupos do Azure AD versus indivíduos

Você concede acesso no Fabric colocando usuários em grupos do Azure AD. Assim, pode controlar os dados de muitas pessoas de uma só vez. É mais seguro usar grupos do que adicionar cada pessoa individualmente. Os grupos ajudam você a gerenciar o sistema com menos trabalho. Quando sua equipe muda, você pode atualizar os grupos rapidamente. Vincular grupos a papéis facilita a modelagem de dados. Suas regras de segurança em nível de linha ficam claras e simples.

Dica: use grupos do Azure AD para controle de acesso. Isso ajuda a cometer menos erros e economiza tempo.

Grupos sobrepostos e acesso oculto

Você precisa ficar atento a grupos sobrepostos. Às vezes, um usuário está em mais de um grupo. Isso pode permitir que ele veja dados que não deveria ver. O acesso oculto ocorre quando esse erro faz com que usuários vejam dados extras. Você deve verificar as listas de grupos com frequência para evitar isso. Use tabelas para acompanhar quais usuários estão em cada grupo. A boa modelagem de dados ajuda a identificar problemas cedo. Remova usuários de grupos que não precisam mais para manter os dados seguros.

Problema

Solução

Grupos sobrepostos

Verifique as listas de grupos com frequência

Acesso oculto

Revise os membros dos grupos

Nota: o acesso oculto pode expor dados privados. Corrija as sobreposições de grupos para manter seu sistema seguro.

Revisões de acesso programadas

Você deve planejar revisões de acesso regulares. Verifique periodicamente quem está em cada grupo. Peça aos proprietários dos grupos que confirmem quem deve ter acesso. Isso mantém sua segurança dinâmica em nível de linha funcionando à medida que a empresa cresce. Use as ferramentas do Fabric para ajudar nessas verificações. Remova usuários antigos para tornar seus dados mais seguros. Isso mantém seu sistema de analytics organizado e seguro. Torne as revisões de acesso uma parte normal do seu trabalho de business intelligence.

Alerta: revisões regulares ajudam a identificar erros antes que eles causem problemas.

Resolução de identidade: Desktop versus Fabric

Funções de identidade e diferenças na nuvem

É importante entender como a identidade funciona no Power BI Desktop e no Microsoft Fabric. No Power BI Desktop, USERNAME() normalmente mostra o nome do seu computador. No Microsoft Fabric, USERPRINCIPALNAME() retorna seu endereço de e-mail na nuvem. Essa diferença é importante para manter os dados seguros. Se você usar USERNAME() na nuvem, as pessoas erradas podem ver os dados. Sempre use USERPRINCIPALNAME() para relatórios na nuvem. Isso ajuda a manter seus dados seguros e alinhado ao sistema de identidade da sua empresa.

Dica: teste suas regras de segurança em nível de linha na nuvem. Os testes no Desktop não mostram o acesso real dos usuários.

Proprietário do conjunto de dados e configurações do locatário

Você precisa saber quem é o proprietário do seu conjunto de dados. O proprietário pode alterar as configurações de atualização e afetar quem vê os dados. Se você trocar o proprietário, pode alterar quem consegue ver dados privados. As configurações do locatário também são importantes. Essas configurações definem como as identidades funcionam na sua empresa. Verifique as configurações do locatário antes de publicar os relatórios. Certifique-se de que seu modelo de dados esteja alinhado às regras de segurança da empresa.

Configuração

Impacto na segurança dos dados

Proprietário do conjunto de dados

Controla atualização e acesso

Configurações do locatário

Gerencia a organização de identidades

Causas comuns de vazamentos de RLS

Você pode perder o controle da segurança em nível de linha se não testar na nuvem. Às vezes, os usuários veem mais dados do que deveriam. Isso pode acontecer se você usar a função de identidade errada ou esquecer de atualizar as associações de grupos. Vazamentos também podem ocorrer se você alterar seu modelo de dados sem verificar as tabelas de segurança. Sempre revise a configuração de segurança dos dados após alterações. Use testes na nuvem e auditorias regulares para identificar problemas cedo.

Alerta: vazamentos de segurança de dados podem expor informações privadas. Revise sua configuração com frequência para manter sua organização segura.

Testes, auditoria e governança

Testes de RLS baseados na nuvem

Você deve testar a segurança em nível de linha na nuvem. Isso garante que seus dados estejam protegidos para usuários reais. A ferramenta “View As” no Desktop mostra apenas uma prévia. Ela não mostra como as regras funcionam no Microsoft Fabric. Depois de publicar seu relatório, teste com usuários e grupos reais. Assim você consegue ver o que cada pessoa pode visualizar. Use contas de teste para verificar se os usuários veem apenas os seus dados. Sempre teste novamente depois de alterar funções ou atualizar seu modelo. Testes na nuvem ajudam a identificar problemas antes que eles afetem o seu negócio.

Dica: sempre teste com usuários reais na nuvem, e não apenas no Desktop. Isso mantém a segurança dos seus dados sólida.

Automação para auditorias e revisões

Você pode usar automação para facilitar auditorias e revisões no Fabric. A automação verifica permissões de workspaces, fluxos de dados e rótulos de confidencialidade em uma programação. O Microsoft Purview oferece painéis para acompanhar as regras em toda a plataforma. Você pode usar logs de atividade e as APIs de administração para encontrar problemas de conformidade. A automação ajuda você a encontrar problemas cedo e economiza tempo. Auditores podem ver o caminho completo das colunas sensíveis, do início até o relatório. Isso torna as revisões mais rápidas e mais precisas. A automação também facilita e barateia o cumprimento de regras como GDPR e HIPAA.

Documentação e gerenciamento de mudanças

Você precisa de bons registros para manter seu sistema de segurança de dados claro. Documente suas regras de segurança, listas de grupos e alterações de funções. Atualize suas anotações sempre que mudar o modelo ou adicionar novos usuários. Registros claros ajudam você a acompanhar quem pode ver quais dados. Eles também ajudam novos membros da equipe a entender o sistema. O gerenciamento de mudanças significa verificar e aprovar atualizações antes que entrem em produção. Isso mantém sua segurança em nível de linha protegida à medida que a empresa cresce.

Tarefa

Benefício

Documentar alterações

Evita confusão

Revisar atualizações

Bloqueia acessos indesejados

Acompanhar atribuições

Deixa os dados mais seguros

Alerta: mantenha seus registros atualizados. Isso protege seus dados e ajuda a resolver problemas rapidamente.

Você deve pensar na segurança em nível de linha como algo que muda à medida que seus dados e sua empresa crescem. Uma configuração sólida ajuda a manter as informações privadas protegidas. Usar bons padrões de DAX e gerenciar bem a identidade dos usuários protege seus dados. Verificar sua segurança e registrar as alterações ajuda a identificar problemas cedo. Se você planejar com antecedência, poderá controlar quem vê os dados e manter sua análise protegida.

Perguntas frequentes

O que é segurança dinâmica em nível de linha no Power BI e no Fabric?

A segurança dinâmica em nível de linha permite controlar o acesso aos dados com base em quem está visualizando o relatório. Você usa funções DAX e tabelas de mapeamento para associar os usuários aos dados corretos.

Por que você deve usar USERPRINCIPALNAME() em vez de USERNAME()?

USERPRINCIPALNAME() retorna o e-mail do usuário na nuvem. Isso funciona melhor no Power BI e no Fabric. USERNAME() pode retornar um nome local, o que pode causar problemas de segurança na nuvem.

Como os grupos do Azure AD ajudam na segurança?

Os grupos do Azure AD permitem gerenciar o acesso de muitos usuários de uma só vez. Você adiciona usuários aos grupos e atribui funções. Isso torna sua configuração de segurança mais fácil e mais segura.

O que é uma tabela de segurança e por que você precisa dela?

Uma tabela de segurança lista usuários, grupos e permissões. Você a usa para controlar quem pode ver determinados dados. Isso ajuda a manter seus dados protegidos à medida que a empresa cresce.

Com que frequência você deve testar a segurança em nível de linha na nuvem?

Você deve testar a segurança em nível de linha sempre que alterar funções, grupos ou seu modelo de dados. Os testes na nuvem mostram o que os usuários reais podem ver e ajudam a identificar problemas cedo.

Microsoft Fabric Governance Power BI

Related articles

RSS