Impor a segurança do modelo semântico
Nesse exercício, você atualizará um modelo de dados pré-desenvolvido para impor a segurança. Especificamente, os vendedores da empresa Adventure Works só devem poder ver os dados de vendas relacionados à região de vendas atribuída.
Neste exercício, você aprenderá a:
- Criar funções estáticas.
- Criar funções dinâmicas.
- Validar funções.
- Mapear entidades de segurança para funções de modelo semântico.
Esse laboratório leva cerca de 45 minutos para ser concluído.
Observação: Você precisará uma avaliação gratuita do Microsoft Fabric para concluir esse exercício.
Introdução
Neste exercício, você preparará seu ambiente.
Faça o download do arquivo inicial do Power BI
-
Baixe o arquivo inicial da Análise de Vendas de
https://aka.ms/fabric-security-starter
e salve-o no computador local (em qualquer pasta). -
Navegue até o arquivo baixado e abra-o no Power BI Desktop.
-
Quando solicitado, faça login com uma conta corporativa ou de estudante.
Entrar no serviço do Power BI
Nesta tarefa, você entrará no serviço do Power BI, iniciará uma licença de avaliação e criará um workspace.
-
Em um navegador da Web, vá para
https://app.powerbi.com/
. -
Conclua o processo de entrada com a mesma conta usada no Power BI Desktop.
Importante: você deve usar as mesmas credenciais usadas para entrar no Power BI Desktop.
Dica: a experiência do navegador da Web do Power BI é conhecida como o Serviço do Power BI.
Criar um workspace
Nesta tarefa, você criará um workspace.
-
No serviço do Power BI, para criar um workspace, no painel de navegação (localizado à esquerda), selecione Workspaces e selecione + Novo workspace.
-
No painel Criar um workspace (localizado à direita), na caixa Nome, insira um nome para o workspace.
O nome do workspace precisa ser exclusivo dentro do locatário.
-
Escolha Aplicar.
Depois de criado, o workspace é aberto. Em um exercício posterior, você publicará um modelo semântico neste workspace.
Examinar o modelo de dados
Nesta tarefa, você revisará o modelo de dados.
-
No Power BI Desktop, alterne para a exibição de Modelo à esquerda.
-
Use o diagrama de modelo para examinar o design do modelo.
O modelo é composto por seis tabelas dimensionais e uma tabela de fatos. A tabela fatos de Vendas armazena os detalhes da ordem de venda do cliente. É um design clássico de esquema de estrelas.
-
Em seguida abra e expanda a tabela Território de Vendas.
-
Observe que a tabela inclui uma coluna Região.
A coluna Região armazena as regiões de vendas da Adventure Works. Nessa organização, os vendedores só podem ver dados relacionados à região de vendas atribuída. Neste laboratório, você implementará duas técnicas de segurança em nível de linha diferentes para impor permissões de dados.
Criar funções estáticas
Neste exercício, você criará e validará funções estáticas e verá como mapear as entidades de segurança para as funções de modelo semântico.
Criar funções estáticas
Nesta tarefa, você criará duas funções estáticas.
-
Alterne para a exibição de Relatório.
-
No visual do gráfico de colunas empilhadas, na legenda, observe (por enquanto) que é possível ver muitas regiões.
Por enquanto, o gráfico parece excessivamente cheio. Isso porque todas as regiões são visíveis. Quando a solução impõe a segurança em nível de linha, o consumidor do relatório verá apenas uma região.
-
Para adicionar uma função de segurança, na guia Modelagem da faixa de opções, no grupo Segurança, selecione Gerenciar Funções.
-
Na janela Gerenciar Funções, selecione Criar.
-
Para nomear a função, substitua o texto selecionado por Austrália e pressione Enter.
-
Na lista Tabelas, para a tabela Território de Vendas, selecione as reticências e, em seguida, selecione Adicionar filtro > [Região].
-
Na caixa Expressão DAX do filtro de tabela, substitua Valor por Austrália.
Essa expressão filtra a coluna Região pelo valor Austrália.
-
Para criar outra função, pressione Criar.
-
Repita as etapas nesta tarefa para criar uma função chamada Canadá que filtra a coluna Região por Canadá.
Neste laboratório, você criará apenas as duas funções. Considere, no entanto, que, em uma solução real, uma função deve ser criada para cada uma das 11 regiões da Adventure Works.
-
Selecione Salvar.
Validar as funções estáticas
Nesta tarefa, você validará funções estáticas.
-
Na guia Modelagem da faixa de opções, no grupo Segurança, selecione Exibir como.
-
Na janela Exibir como funções, selecione a função Austrália.
-
Selecione OK.
-
Na página do relatório, observe que o visual do gráfico de colunas empilhadas mostra apenas dados para a Austrália.
-
Na parte superior do relatório, observe a faixa amarela que confirma o papel imposto.
-
Para interromper a exibição usando a função, à direita do banner amarelo, selecione Parar visualização.
Publicar o relatório
Nesta tarefa, você publicará o relatório.
-
Salve o arquivo do Power BI Desktop. Ao ser solicitado para aplicar as alterações pendentes, selecione Aplicar mais tarde.
-
Para publicar o relatório, na guia Página Inicial da faixa de opções, selecione Publicar.
-
Na janela Publicar no Power BI, selecione seu workspace e clique em Selecionar.
-
Quando a publicação for bem-sucedida, selecione Entendi.
Configurar segurança em nível de linha (opcional)
Nesta tarefa, você verá como configurar a segurança em nível de linha no serviço do Power BI.
Essa tarefa depende da existência de um grupo de segurança Salespeople_Australia no locatário em que você está trabalhando. Esse grupo de segurança NÃO existe automaticamente no locatário. Se você tiver permissões em seu locatário, siga as etapas abaixo. Se você estiver usando um locatário fornecido a você no treinamento, não terá as permissões apropriadas para criar grupos de segurança. Leia as tarefas, mas observe que você não poderá concluí-las se não tiver o grupo de segurança. Depois de ler, prossiga para a tarefa Limpar.
-
Alterne para o serviço do Power BI (navegador da Web).
-
Na página de aterrissagem do workspace, observe o modelo semântico Análise de Vendas – Impor a segurança do modelo.
-
Passe o cursor sobre o modelo semântico e, quando as reticências forem exibidas, selecione as reticências e, em seguida, Segurança.
A opção Segurança dá suporte ao mapeamento de entidades de segurança do Microsoft Azure Active Directory (Azure AD), que inclui grupos de segurança e usuários.
-
À esquerda, observe a lista de funções e que Austrália está selecionada.
-
Na caixa Membros, comece inserindo Salespeople_Australia.
As etapas 5 a 8 são apenas para fins de demonstração, pois dependem da criação ou existência de um grupo de segurança Salespeople_Australia. Se você tiver permissões e conhecimento para criar grupos de segurança, sinta-se à vontade para prosseguir. Caso contrário, vá para a tarefa Limpar.
-
Selecione Adicionar.
-
Para concluir o mapeamento de função, selecione Salvar.
Agora, todos os membros do grupo de segurança Salespeople_Australia** são mapeados para a função Austrália **, que restringe o **acesso a dados para exibir apenas as **vendas australianas.
Em uma solução real, cada função deve ser mapeada para um grupo de segurança.
Essa abordagem de design é simples e eficaz quando existem grupos de segurança para cada região. No entanto, há desvantagens: requer mais esforço para criar e configurar. Também requer a atualização e a republicação do modelo semântico quando novas regiões são integradas.
No próximo exercício, você criará uma função dinâmica orientada por dados. Essa abordagem de design pode ajudar a resolver essas desvantagens.
-
Para retornar à página inicial do workspace, no painel Navegação, selecione o workspace.
Limpar a solução
Nesta tarefa, você limpará a solução removendo o modelo semântico e as funções de modelo.
-
Para remover o modelo semântico, passe o cursor sobre o modelo semântico e, quando as reticências forem exibidas, selecione as reticências e, em seguida, Excluir.
Você publicará novamente um modelo semântico revisado no próximo exercício.
-
Quando precisar confirmar a exclusão, selecione Excluir.
-
Alternar para o Power BI Desktop.
-
Para remover as funções de segurança, na guia Modelagem da faixa de opções, no grupo Segurança, selecione Gerenciar Funções.
-
Na janela Gerenciar funções, para remover a primeira função, selecione Excluir.
-
Quando precisar confirmar a exclusão, pressione Sim, excluir.
-
Remova também a segunda função.
-
Selecione Salvar.
Criar função dinâmica
Neste exercício, você adicionará uma tabela ao modelo, criará e validará uma função dinâmica e mapeará uma entidade de segurança para a função de modelo semântico.
Adicionar a tabela Vendedor
Nesta tarefa, você adicionará uma tabela Vendedor ao modelo.
-
Alterne para a exibição de Modelo.
-
Na guia Página Inicial da faixa de opções, dentro do grupo Dados, selecione o ícone Transformar dados.
Se você for solicitado a especificar como se conectar, Edite as credenciais e especifique como entrar.
Selecione Conectar
Na página Suporte à Criptografia, selecione OK.
-
Na janela do Editor do Power Query, no painel Consultas (localizado à esquerda), clique com o botão direito do mouse na consulta Cliente e selecione Duplicar.
Como a consulta Cliente já inclui etapas para conectar o data warehouse, duplicá-la é uma maneira eficiente de iniciar o desenvolvimento de uma nova consulta.
-
No painel Configurações de Consulta (localizado à direita), na caixa Nome, substitua o texto por Vendedor.
-
Na lista Etapas aplicadas, clique com o botão direito do mouse na etapa Outras colunas removidas (terceira etapa) e selecione Excluir Até o Fim.
-
Quando precisar confirmar exclusão da etapa, selecione Excluir.
-
Para obter dados de uma tabela de data warehouse diferente, na lista Etapas Aplicadas, na Navegação (segunda etapa), selecione o ícone de engrenagem (localizado à direita).
-
Na janela Navegação, selecione a tabela DimEmployee.
-
Selecione OK.
-
Para remover colunas desnecessárias, na guia de faixa de opções Página Inicial, no grupo Gerenciar Colunas, selecione o ícone Escolher Colunas.
-
Na janela Escolher Colunas, desmarque o item (Selecionar Todas as Colunas).
-
Marque as três seguintes colunas:
-
EmployeeKey
-
SalesTerritoryKey
-
EmailAddress
-
-
Selecione OK.
-
Para renomear a coluna EmailAddress, clique duas vezes no cabeçalho da coluna EmailAddress.
-
Substitua o texto por UPN e pressione Enter.
UPN é um acrônimo para Nome Principal do Usuário. Os valores nesta coluna correspondem aos nomes de conta do Azure AD.
-
Para carregar a tabela no modelo, na guia Página Inicial da faixa de opções, selecione o ícone Fechar & Aplicar.
-
Quando a tabela tiver sido adicionada ao modelo, observe que uma relação com a tabela Território de Vendas foi criada automaticamente.
Configurar a relação
Nesta tarefa, você configurará as propriedades da nova relação.
-
Clique com o botão direito do mouse na relação entre as região tabelas Vendedor ** e **Território de Vendas e selecione Propriedades.
-
Na janela Editar Relação, na lista suspensa Direção do filtro cruzado, selecione Ambas.
-
Marque a caixa de seleção Aplicar filtro de segurança em ambos os sentidos.
Como há uma relação um para muitos da tabela Território de Vendas para a tabela Vendedor, os filtros se propagam somente da tabela Território de Vendas para a tabela Vendedor. Para forçar a propagação na outra direção, a direção do filtro cruzado deve ser definida como ambas.
-
Selecione OK.
-
Para ocultar a tabela, no canto superior direito da tabela Vendedor, selecione o ícone de olho.
O objetivo da tabela Vendedor é impor permissões de dados. Quando ocultos, os autores do relatório e a experiência de Perguntas e Respostas não verão a tabela ou seus campos.
Criar função dinâmica
Nesta tarefa, você criará uma função dinâmica, que impõe permissões com base nos dados no modelo.
-
Alterne para a exibição de Relatório.
-
Para adicionar uma função de segurança, na guia Modelagem da faixa de opções, no grupo Segurança, selecione Gerenciar Funções.
-
Na janela Gerenciar Funções, selecione Criar.
-
Para nomear a função, substitua o texto selecionado por Vendedor.
Desta vez, apenas uma função precisa ser criada.
-
Adicione um filtro à coluna UPN da tabela Vendedor.
-
Na caixa Expressão DAX do filtro de tabela, substitua “Valor” por
USERPRINCIPALNAME()
.Essa expressão filtra a coluna UPN pela função USERPRINCIPALNAME, que retorna o nome principal do usuário (UPN ) do usuário autenticado.
Quando o UPN filtra a tabela Vendedor, ele filtra a tabela Território de Vendas, que, por sua vez, filtra a tabela Vendas. Dessa forma, o usuário autenticado verá apenas os dados de vendas de sua região atribuída.
-
Selecione Salvar.
Validar a função dinâmica
Nesta tarefa, você validará a função dinâmica.
-
Na guia Modelagem da faixa de opções, no grupo Segurança, selecione Exibir como.
-
Na janela Exibir como funções, marque Outro usuário, e depois na caixa correspondente, digite:
michael9@adventure-works.com
.Para fins de teste, Outro usuário é o valor que será retornado pela função USERPRINCIPALNAME. Observe que esse vendedor está alocado na região Nordeste .
-
Marque a função Vendedores.
-
Selecione OK.
-
Na página do relatório, observe que o visual do gráfico de colunas empilhadas mostra apenas dados para a Nordeste.
-
Na parte superior do relatório, observe a faixa amarela que confirma o papel imposto.
-
Para interromper a exibição usando a função, à direita do banner amarelo, selecione Parar visualização.
Finalizar o design
Nesta tarefa, você finalizará o design publicando o relatório e mapeando um grupo de segurança para a função.
As etapas desta tarefa são deliberadamente breves. Para obter detalhes completos das etapas, consulte as etapas da tarefa do exercício anterior.
-
Salve o arquivo do Power BI Desktop.
-
Publique o relatório no workspace criado no início do laboratório.
-
Feche o Power BI Desktop.
-
Alterne para o serviço do Power BI (navegador da Web).
-
Vá para as configurações de segurança do modelo semântico Análise de Vendas – Impor a segurança do modelo.
-
Mapeie o grupo de segurança Vendedores e a função Vendedores.
Agora todos os membros do grupo de segurança Vendedores estão mapeados para a função Vendedores. Desde que o usuário autenticado seja representado por uma linha na tabela Vendedor, o território de vendas atribuído será usado para filtrar a tabela de vendas.
Essa abordagem de design é simples e eficaz quando o modelo de dados armazena os valores de nome principal do usuário. Quando os vendedores são adicionados ou removidos, ou são atribuídos a diferentes territórios de vendas, essa abordagem de design simplesmente funcionará.