Estas práticas recomendadas refletem as recomendações partilhadas por uma equipa multifuncional de utilizadores experientes do Looker. Estas estatísticas resultam de anos de experiência a trabalhar com clientes do Looker, desde a implementação ao sucesso a longo prazo. As práticas são escritas para funcionar para a maioria dos utilizadores e situações, mas, como sempre, use o bom senso ao implementá-las.
Esta página oferece aos administradores de instâncias do Looker um exemplo orientado de configuração dos controlos de acesso ao conteúdo. Vamos analisar o processo de implementação, começando por um novo projeto e continuando com modelos, conjuntos de modelos, conjuntos de autorizações, grupos, funções e atributos do utilizador.
Primeiro, uma analogia para compreender as principais funcionalidades do Looker neste contexto:
Um projeto é como uma casa.Um modelo é uma divisão da casa preenchida com conteúdo específico.
Um conjunto de modelos é um grupo de quartos ou um único quarto (quartos, cozinha).
Um conjunto de autorizações é uma lista de verificação de atividades que especifica o que as pessoas podem fazer numa divisão (comer, brincar, dormir).
Um grupo é uma forma de combinar pessoas com características partilhadas (adultos, crianças, convidados).
Uma função é a forma de dar às pessoas as respetivas listas de verificação de atividades em diferentes conjuntos de salas.
Um atributo do utilizador é uma chave que abre itens especiais na casa (bule de chá, ferramentas elétricas).
Cenário
Segue-se um exemplo de uma startup com equipas de finanças, vendas e produtos. O CEO é o nosso único administrador e quer que cada equipa veja apenas o conteúdo relevante para si, com a exceção de que o VP de cada equipa deve ter acesso ao conteúdo de todas as equipas. Quer ter acesso a funcionalidades diferentes para funcionários padrão, gestores e vice-presidentes.
- Os funcionários padrão devem poder ver e explorar dados nos respetivos modelos.
- Os gestores devem ter acesso padrão e também poder transferir e agendar conteúdo.
- Os VPs devem ter quase todos os privilégios, exceto alguns reservados apenas para o CEO.
O CEO quer que os vendedores possam ver os dados das suas próprias atividades, mas não os números de vendas individuais de outro vendedor. No entanto, os gestores de vendas devem poder ver os números de todos os vendedores. Por último, existem alguns campos financeiros com informações confidenciais que quer ocultar para os funcionários padrão que usam esse modelo.
Segue-se o organograma:
Este gráfico revela a seguinte estrutura organizacional para a nossa startup de exemplo:
- CEO
- VP of Finance
- Gestor financeiro
- Contabilista
- VP of Sales
- Gestor de vendas – Oeste
- Vendedor Oeste
- Gestor de vendas do leste
- Vendedor do leste
- VP de produto
- Gestor de produtos
- Engenheiro
A implementação dos controlos de acesso desejados envolve os seguintes passos:
- Crie um projeto: um projeto é a ligação estrutural entre uma associação à base de dados e os modelos de dados.
- Adicione modelos: decida que dados vão ser revelados a que utilizadores.
- Crie conjuntos de modelos: agrupe modelos relevantes.
- Criar conjuntos de autorizações: defina explicitamente as ações que os utilizadores podem realizar num conjunto de modelos.
- Crie grupos: agrupe utilizadores semelhantes.
- Criar funções: crie as associações entre conjuntos de modelos, conjuntos de autorizações e grupos.
- Editar acesso ao conteúdo: gerir os painéis de controlo e os Looks que os utilizadores podem ver através de pastas.
- Adicione filtros de dados: filtre ainda mais os dados aos quais utilizadores específicos podem aceder num modelo.
1. Criar um projeto
A primeira coisa de que precisamos é de um projeto, que é um contentor para um ou mais modelos. Se já tiver um projeto configurado, pode ignorar este passo. Caso contrário, pode navegar para a página Projetos do LookML selecionando Projetos na secção Desenvolver do Looker e selecionando Novo projeto do LookML para criar um novo projeto. Para obter instruções mais detalhadas sobre a criação de um novo projeto, consulte a página de documentação Gerar um modelo.
Na página Novo projeto, vamos criar um projeto com as seguintes definições:
- Na secção Nome, atribuímos um nome ao projeto.
- Na secção Ponto de partida, selecionamos Gerar modelo a partir do esquema da base de dados.
- No menu pendente Associação, selecionamos o nome da nossa associação de base de dados.
- Na secção Criar vistas a partir de, para este exemplo, selecionamos a opção Todas as tabelas para que o gerador do LookML crie um ficheiro de vista para cada tabela na sua base de dados.
Depois de configurar as definições pretendidas para o novo projeto, selecionamos Criar projeto.
Após criar um projeto, acede ao modelo LookML gerado automaticamente do projeto. Neste ponto, tem de usar o botão Configurar Git para configurar o controlo de versões para o projeto. Encontra instruções detalhadas sobre a configuração do controlo de versões na página de documentação Configurar e testar uma ligação Git.
2. Adicione modelos
Um modelo de dados é como um portal personalizável para a base de dados. Cada modelo pode expor dados diferentes aos utilizadores. No nosso exemplo, os nossos vendedores precisam de dados diferentes dos nossos engenheiros, pelo que adicionamos modelos separados para expor as informações adequadas da base de dados a cada tipo de utilizador.
No nosso projeto do LookML, vamos adicionar novos ficheiros do modelo do LookML com os nomes de cada um dos modelos pretendidos (finance
, sales
e product
). Certifique-se de que define, pelo menos, uma exploração em cada ficheiro do modelo. Isto permite-nos selecionar o modelo quando criamos conjuntos de modelos (caso contrário, não são apresentados na seleção). Para referência adicional sobre como usar o parâmetro explore
no ficheiro do modelo, consulte a página de documentação Compreender os ficheiros de modelo e de visualização.
Depois de adicionarmos os modelos com êxito, ainda temos de os configurar. Para configurar os modelos, vamos voltar à página Projetos na secção Desenvolver, que deve agora apresentar o texto vermelho "Configuração necessária para utilização" inline com cada nome do modelo.
Junto a cada modelo, selecione Configurar. Vamos certificar-nos de que o nome do nosso projeto está correto, juntamente com as associações que vamos permitir que este modelo use e, em seguida, guardamos.

Depois de todos os modelos estarem configurados corretamente, as mensagens de problemas de configuração vermelhas que encontrámos anteriormente já não são apresentadas.
Tenha em atenção que, no Looker, conceder a um utilizador a autorização see_lookml
ou develop
num modelo concede-lhe essa autorização para todos os modelos nesse projeto. Por conseguinte, deve criar projetos separados se quiser dividir a autorização para ver ou desenvolver LookML. Caso contrário, deve criar um novo modelo. As autorizações do modelo são suficientes para garantir que apenas determinadas pessoas podem consultar determinados dados.
Para mais informações sobre autorizações, consulte a nossa documentação sobre funções.
3. Crie conjuntos de modelos
Agora que os modelos de dados para cada departamento foram configurados, vamos adicionar o modelo correspondente para cada departamento aos conjuntos de modelos que criamos. Para criar novos conjuntos de modelos, navegamos para a página Funções no painel Administração e selecionamos Novo conjunto de modelos. Para obter mais instruções sobre como criar novos conjuntos de modelos, consulte a página de documentação Funções.
Depois de criar os novos conjuntos de modelos, estes são apresentados na secção Conjuntos de modelos da página Funções, como na captura de ecrã do exemplo seguinte:
4. Crie conjuntos de autorizações
Em seguida, vamos criar conjuntos de autorizações com os conjuntos de modelos que acabámos de criar. Conforme mencionado quando configurámos o cenário, queremos quatro níveis de autorizações correspondentes aos quatro níveis hierárquicos no organigrama, e os níveis superiores devem incluir as autorizações dos níveis inferiores. No nosso cenário, vamos identificar os conjuntos de autorizações da seguinte forma:
- O CEO tem a autorização Admin definida.
- Os VPs têm a autorização Administrador limitado definida.
- Os gestores têm a autorização Transferir e partilhar definida.
- Os funcionários padrão têm a autorização Ver e explorar definida.
Para criar novos conjuntos de autorizações, navegamos para a página Funções no painel Administração e selecionamos Novo conjunto de autorizações. Para cada nível de autorização, selecionamos as autorizações adequadas. Em geral, os conjuntos de autorizações devem sobrepor-se o mínimo possível, e cada conjunto deve adicionar apenas as autorizações específicas que queremos que os utilizadores com este conjunto de autorizações tenham. Isto deve-se ao facto de atribuirmos vários conjuntos de autorizações a alguns utilizadores e querermos saber exatamente o que cada conjunto de autorizações permite. No entanto, devido à estrutura de árvore, a sobreposição é muitas vezes necessária.
No nosso exemplo, queremos que a autorização Ver e explorar esteja definida para permitir que os utilizadores vejam conteúdo, façam perguntas e guardem mosaicos úteis. Assim, concedemos-lhe autorizações associadas à visualização de conteúdo (como see_looks
e see_user_dashboards
), a autorização explore
e a autorização save_content
. As exceções notáveis aqui são see_lookml
, que só podemos querer para programadores, e see_sql
, que reservamos para aqueles que compreendem SQL e são fidedignos para ver a estrutura da base de dados. Todas estas autorizações estão estritamente no ramo access_data
. Não estamos a conceder nenhuma das autorizações see
na parte inferior da árvore, porque são autorizações administrativas.
Para o conjunto de autorizações Transferir e partilhar, adicionamos as autorizações associadas à transferência, agendamento, partilha, criação de Looks públicos (que permite a partilha de Looks com utilizadores que não usam o Looker) e see_schedules
(uma vez que podem criar agendamentos, é lógico que também os possam ver no painel de administração).
Os únicos campos que foram selecionados ao configurar os conjuntos de autorizações Ver e explorar e Transferir e partilhar são as autorizações parentais necessárias para selecionar as autorizações da criança adicionadas no ramo access_data
. Por conseguinte, uma vez que os utilizadores com o conjunto de autorizações Transferir e partilhar também têm o conjunto de autorizações Ver e explorar, não é necessário incluir autorizações como see_lookml_dashboards
, see_user_dashboards
e explore
no conjunto de autorizações Transferir e partilhar, uma vez que estas autorizações não contêm autorizações subordinadas necessárias para o conjunto de autorizações Transferir e partilhar.
Por último, para o nosso conjunto de autorizações de administrador limitado, vamos adicionar a maioria das autorizações administrativas na parte inferior da árvore, excluindo os privilégios manage_models
e sudo
que o CEO quer apenas para si. Tem o seguinte aspeto:
Quando tudo estiver concluído, os conjuntos de autorizações incluem as seguintes autorizações:
- Administrador: o conjunto de autorizações de administrador, que está reservado para o CEO da nossa empresa de exemplo, inclui todas as autorizações.
- Administrador limitado: o conjunto de autorizações de Administrador limitado inclui as autorizações
create_prefetches
,login_special_email
,manage_homepage
,manage_spaces
,see_alerts
,see_datagroups
,see_logs
,see_pdts
,see_queries
,see_users
eupdate_datagroups
. - Transferir e partilhar: o conjunto de autorizações Transferir e partilhar inclui as autorizações
access_data
,create_public_looks
,download_with_limit
,download_without_limit
,save_content
,schedule_external_look_emails
,schedule_look_emails
,see_looks
,see_schedules
,send_outgoing_webhook
,send_to_s3
esend_to_sftp
. - Ver e explorar: o conjunto de autorizações Ver e explorar inclui as autorizações
access_data
,create_table_calculations
,explore
,save_content
,see_drill_overlay
,see_lookml_dashboards
,see_looks
esee_user_dashboards
.
Pode ver as autorizações pertencentes a um conjunto de autorizações existente navegando para a secção Conjuntos de autorizações da página de administração Funções.
5. Crie grupos
O passo seguinte é criar os grupos e segmentar os nossos utilizadores. Vamos criar grupos para funcionários padrão e gestores em cada departamento, porque estes vão corresponder às diferentes funções que criaremos mais tarde. Os VPs vão estar no seu próprio grupo e o CEO não precisa de um grupo. Quando estiver concluída, a página Grupos deve apresentar os seguintes grupos e os respetivos IDs de grupos, que são gerados automaticamente pelo Looker. Por exemplo:
ID | Nome |
---|---|
1 | Todos os utilizadores |
3 | Finanças |
4 | Vendas |
5 | Produto |
7 | Gestor de vendas |
8 | Gestor de produtos |
9 | Gestor financeiro |
10 | VPs |
Com os grupos criados, temos de adicionar utilizadores a esses grupos. Para obter instruções sobre como adicionar utilizadores a grupos, consulte a página de documentação Grupos.
Quando adicionar utilizadores aos grupos que criámos, lembre-se de que, devido à forma como estruturámos as autorizações, os grupos de nível superior podem ser incluídos nos grupos de nível inferior. Por exemplo, queremos os vice-presidentes no grupo Financeiro, mas não queremos os gestores de vendas no grupo Produto. Uma forma eficiente de abordar esta questão é começar por adicionar utilizadores aos grupos de nível superior (como vice-presidentes), para que os possamos adicionar como um grupo aos níveis inferiores.
6. Crie funções
Agora que temos os conjuntos de modelos, os conjuntos de autorizações e os grupos implementados, podemos juntá-los todos através de funções. Cada função tem um único conjunto de autorizações e um único conjunto de modelos, e pode incluir um ou mais grupos. Uma vez que as funções têm de incluir um conjunto de modelos, vamos criar novamente funções para funcionários padrão e para gestores de cada departamento.
- Funções padrão: as funções padrão incluem o conjunto de autorizações Ver e explorar, juntamente com o conjunto de modelos correspondente. Atribua funções padrão aos grupos padrão e de gestores desse departamento, bem como ao vice-presidente. Por exemplo, atribua a função Finanças padrão aos grupos Finanças e Gestor financeiro, bem como ao VP de Finanças.
- Funções de gestor:as funções de gestor têm a autorização Transferir e partilhar definida, juntamente com o conjunto de modelos correspondente. Estas funções devem ser atribuídas ao grupo de gestores do departamento correspondente e ao vice-presidente do departamento.
- Funções de gestor:as funções de gestor têm a autorização Transferir e partilhar definida, juntamente com o conjunto de modelos correspondente. Estas funções devem ser atribuídas ao grupo de gestores do departamento correspondente e ao vice-presidente do departamento.
- Função de VP: a função de VP tem o conjunto de autorizações de administrador limitado e o conjunto de modelos Todos. Esta função vai ser atribuída ao grupo VPs.
7. Edite o acesso ao conteúdo
O passo seguinte é organizar as autorizações de acesso às pastas para que cada grupo tenha acesso ao seu próprio conteúdo (e apenas ao seu). Segue-se o esquema das pastas na nossa instância de exemplo, que pode ser visto navegando para a página Acesso ao conteúdo no painel de administração:
O acesso às pastas segue as regras de herança hierárquica. Para mais informações sobre o funcionamento desta funcionalidade, consulte a nossa documentação sobre os níveis de acesso e a gestão de autorizações e controlo de acesso.
Seguindo as regras de acesso às pastas, queremos conceder acesso de visualização a todos os utilizadores na pasta Partilhada. Vamos conceder a cada grupo acesso de visualização às pastas principais na árvore acima das pastas às quais o grupo terá acesso. Desta forma, à medida que percorremos a árvore, se não quisermos que um grupo veja uma pasta, não incluímos esse grupo quando concedemos acesso.
Podemos atribuir o nível de acesso Gerir acesso, editar a grupos numa pasta onde queremos controlar quem vê essa pasta. No nosso exemplo, queremos que apenas o CEO e os vice-presidentes tenham essas autorizações. Todos os outros só terão acesso de visualização às pastas de que precisam.
8. Adicione restrições de acesso aos dados com atributos do utilizador
Esta secção mostra métodos para impedir que utilizadores específicos acedam a linhas ou colunas de dados específicas de um modelo ao qual têm acesso. Lembre-se de que o nosso CEO quer que os vendedores possam ver os dados das suas próprias atividades individuais, mas não as atividades de outros. No entanto, os gestores de vendas devem poder ver os números de todos os vendedores. Para tal, vamos tirar partido dos atributos do utilizador e do parâmetro sql_always_where
.
Crie atributos do utilizador
Primeiro, vamos criar um novo atributo do utilizador denominado access_level
que está oculto dos utilizadores. Isto permite-nos definir níveis de acesso para os diferentes grupos que temos. Vamos definir os seguintes valores quando criarmos o nosso atributo do utilizador:
- Nome:
access_level
- Etiqueta: nível de acesso
- Tipo de dados: string
- Acesso do utilizador: editar
- Ocultar valores: não
No nosso exemplo, vamos deixar a caixa Predefinir um valor desmarcada.
Ao criar o campo, configuramos três níveis de acesso: Básico, Premium e Completo. Vamos atribuir esses níveis aos grupos padrão, gestor e VP, respetivamente. Isto é feito no separador Valores de grupo na mesma secção. Consulte a secção Atribuir valores a grupos de utilizadores da documentação Atributos do utilizador para mais detalhes.
Uma vez que a ordem destas regras é importante, queremos colocar os valores de acesso mais elevados na parte superior da lista para substituir os valores de acesso mais baixos na parte inferior. Este comportamento é explicado mais detalhadamente na página de documentação de atributos do utilizador.
Filtrar dados de linhas com atributos do utilizador
Vamos imaginar que já existe uma análise detalhada criada com todas as informações de vendas. Vamos verificar o nível de acesso do utilizador que está a consultar a análise detalhada. Se o nível de acesso for Básico (que atribuímos a todos os nossos vendedores padrão), vamos sempre filtrar a análise detalhada pelo nome do utilizador, para que cada vendedor só tenha acesso às suas próprias linhas. Se o nível de acesso for Premium ou Completo, a consulta não é filtrada. Por predefinição, temos um atributo de utilizador denominado Nome, que é o nome do utilizador do Looker. O LookML para a opção Explorar tem o seguinte aspeto:
explore: sales_info { sql_always_where: {% if {{_user_attributes['access_level']}} == "Basic" %} ${sales_info.name} = "{{_user_attributes['name']}}" % endif % ;; }
Filtrar dados de colunas com atributos do utilizador
Por último, existem algumas colunas de IIP (informações de identificação pessoal) no modelo financeiro que também queremos ocultar de alguns dos nossos utilizadores. Para tal, podemos usar os atributos do utilizador que criámos, juntamente com as instruções para aplicar autorizações ao nível da base de dados no Looker na página de documentação Atributos do utilizador, para dar apenas aos utilizadores com o nível de acesso Completo a capacidade de ver os campos de PII.
E já está! Terminámos a configuração dos nossos controlos de acesso a conteúdo e dados, e todos os nossos utilizadores podem explorar o Looker livremente. Desta forma, podemos garantir que só veem o conteúdo que lhes permitimos ver.