Uso
access_filter: {
field: full_Scope_field
user_attribute: user_attribute_name
}
}
Hierarquia
access_filter |
Valor padrão
NenhumaAceita
Um nome de campo do LookML e o atributo de usuário associadoRegras especiais
É possível aplicar vários parâmetros access_filter ao mesmo recurso Explorar
|
Definição
access_filter
permite aplicar restrições de dados específicas do usuário. Diferentemente da maioria dos parâmetros LookML, ele precisa ser usado em conjunto com outras configurações no Looker para funcionar corretamente. Um parâmetro access_filter
é específico a uma única exploração. Portanto, é necessário aplicar um parâmetro access_filter
a cada exploração que precisa de uma restrição.
Não se esqueça de adicionar
access_filter
a cada "Explorar" que precisar. Se você se esquecer de adicionaraccess_filter
a uma exploração, ela não terá restrições e os usuários poderão ver todas as informações.
O comportamento da função access_filter
seria parecido com o de vocês, sentados com um usuário e exigindo que eles apliquem um ou mais filtros na IU do Explore antes de executar uma consulta. Por exemplo, o usuário pode estar lidando apenas com um subconjunto dos seus clientes. Sendo assim, é necessário que o usuário aplique um filtro de nome de cliente.
Há várias etapas a serem seguidas para implementar um filtro de acesso:
- Decida quais campos precisam ser restritos. No exemplo acima, os usuários podem ter uma exploração Cliente com uma dimensão chamada Nome. A referência a esse campo é
customer.name
. - Todos os usuários que vão interagir com o Explorar em questão precisam de um valor para o filtro de acesso. Em nosso exemplo, cada usuário precisará da lista de nomes de clientes que pode ver. Aplique esses valores a cada usuário ou grupo utilizando o recurso de atributos de usuário do Looker. Você pode ler sobre eles na página Atributos do usuário da documentação. Vamos criar um atributo de usuário allowed_customers.
- Por fim, conecte o atributo do usuário que você criou ao campo que deve usar o valor dele como um filtro. Em nosso exemplo, queremos conectar o atributo de usuário allowed_customers ao campo
customer.name
, desta forma:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
Examples
Os usuários não podem ver informações sobre a região de vendas deles:
explore: customer {
access_filter: {
field: sales.region
user_attribute: sales_region
}
}
Veja como os usuários podem ver informações sobre departamentos específicos nos clientes:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
access_filter: {
field: product.department
user_attribute: allowed_departments
}
}
Desafios comuns
access_filter
exige nomes de campo com escopo completo.
Se você escrever um nome de campo sem um nome para a visualização, a maioria dos parâmetros no Looker assumirá um nome de visualização com base no local em que o parâmetro é usado. No entanto, access_filter
não funciona dessa forma e exige que você escreva o nome da visualização e do campo.
Por exemplo, você pode pensar que isso funcionaria e que name
seria interpretado como o nome do cliente:
explore: customer {
access_filter: {
field: name
user_attribute: allowed_customers
}
}
No entanto, esse não é o caso, e um erro vai aparecer. Em vez disso, escreva:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
Até mesmo os administradores precisam ter valores de filtro definidos na IU.
Todos os usuários que acessam uma exploração que usa access_filter
precisam ter um valor no atributo do usuário referenciado. Isso vale até para quem tem função de administrador, apesar de poder ver todos os dados. Os usuários que não têm um valor de atributo do usuário definido vão receber uma mensagem de erro ao tentar ver a guia "Explorar".
Para conceder a um administrador ou outro usuário acesso a todos os valores de um campo de string, defina o tipo de dados de atributo do usuário como Filtro de string (avançado) e use um valor de
%, NULL
.Para conceder a um administrador ou outro usuário acesso a todos os valores de um campo de número, defina o tipo de dados do atributo do usuário como Filtro de números (avançado) e use o valor
<0, >=0, NULL
.