access_grant

Utilizzo

access_grant: access_grant_name {
  user_attribute: user_attribute_name
  allowed_values: [ "value_1", "value_2" , ... ]
}
Gerarchia
access_grant
Valore predefinito
Nessuno

Accetta
Il nome di un attributo utente con il parametro secondario user_attribute e un elenco di valori dell'attributo utente con il parametro secondario allowed_values

Definizione

Una concessione di accesso è una struttura LookML definita in un file di modello che controlla l'accesso ad altre strutture LookML, in particolare a esplorazioni, join, viste e campi. Il parametro access_grant definisce una concessione di accesso.

access_grant accetta il nome di un attributo utente con il parametro secondario user_attribute e un elenco di valori accettabili per l'attributo utente con il parametro secondario allowed_values. Solo gli utenti a cui è stato assegnato uno dei valori consentiti nell'attributo utente specificato possono accedere alle strutture per le quali è richiesta la concessione di accesso.

Una volta definito, puoi utilizzare il parametro required_access_grants a livello di Explore, join, visualizzazione o campo per richiedere la concessione di accesso per accedere a queste strutture.

Ad esempio, il seguente codice LookML crea una concessione di accesso denominata can_view_financial_data, basata sull'attributo utente department. Solo gli utenti a cui sono assegnati i valori "finance" o "executive" nell'attributo utente department hanno accesso alla concessione di accesso can_view_financial_data:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

A questo punto, associa la concessione di accesso can_view_financial_data a una struttura LookML utilizzando il parametro required_access_grants:

dimension: financial_data_field
  ...
  required_access_grants: [can_view_financial_data]
}

In questo esempio, solo gli utenti che hanno il valore dell'attributo utente corretto per la concessione di accesso can_view_financial_data vedranno la dimensione financial_data_field.

Puoi definire più concessioni di accesso in un modello e puoi assegnare più concessioni di accesso a una struttura LookML con il parametro required_access_grants. In questo caso, un utente deve avere accesso a tutte le concessioni di accesso specificate per accedere alla struttura LookML.

Ad esempio, il seguente codice LookML definisce due diverse concessioni di accesso:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

access_grant: can_view_payroll_data {
  user_attribute: view_payroll
  allowed_values: [ "yes" ]
}

Poi, nel file della visualizzazione, il parametro required_access_grants specifica entrambe le concessioni di accesso:

view: payroll {
  ...
  required_access_grants: [can_view_financial_data, can_view_payroll_data]
}

In questo caso, solo gli utenti a cui è assegnato il valore "finance" o "executive" all'attributo utente department e a cui è assegnato il valore "yes" all'attributo utente view_payroll possono accedere alla visualizzazione.

Esempi

Definisci una concessione di accesso che richiede agli utenti di avere il valore "product_management" o il valore "engineering" nell'attributo utente department per accedere alla concessione di accesso engineering:

access_grant: engineering {
  user_attribute: department
  allowed_values: [ "product_management", "engineering" ]
}

Puoi anche definire le concessioni di accesso con attributi utente che accettano dati numerici o di data/ora. Per farlo, devi racchiudere i valori consentiti tra virgolette doppie, proprio come faresti con una stringa. Ad esempio, la seguente concessione di accesso fa riferimento all'attributo utente id, che ha un tipo di dati di numero. Solo gli utenti con il valore id pari a 1, 2, 3, 4 o 5 avranno accesso:

access_grant: user_id {
  user_attribute: id
  allowed_values: ["1", "2", "3", "4", "5"]
}

L'esempio seguente fa riferimento all'attributo utente start_date, che ha il tipo di dati Data/ora. Solo gli utenti che hanno il valore 2020-01-01 nell'attributo utente avranno accesso:

access_grant: start_date {
  user_attribute: start_date
  allowed_values: ["2020-01-01"]
}

Aspetti da considerare

Gli attributi utente modificabili dall'utente non sono consentiti con le concessioni di accesso

Le concessioni di accesso non possono accettare attributi utente con un livello di accesso utente di Modifica. Gli utenti possono visualizzare e modificare i valori degli attributi utente con un livello di accesso utente di Modifica nella pagina dell'account. Per motivi di sicurezza, con access_grant sono consentiti solo gli attributi utente con un livello di accesso utente pari a Nessuno o Visualizza.

I valori elencati in allowed_values devono corrispondere esattamente ai valori degli attributi utente

access_grant funzionerà con gli attributi utente che hanno il tipo di dati Filtro stringa (avanzato), Filtro numerico (avanzato) o Filtro data/ora (avanzato). Tuttavia, per concedere l'accesso, i valori elencati nel parametro allowed_values devono corrispondere esattamente al valore dell'attributo utente.

Ad esempio, se hai creato un attributo utente denominato numeric_range con il tipo di dati Filtro numerico (avanzato), puoi utilizzare un'espressione di filtro di Looker per inserire un intervallo di numeri, ad esempio [1, 20]. In questo esempio, l'espressione di filtro di Looker nell'attributo utente restituirà un intervallo di numeri compreso tra 1 e 20 inclusi. Poiché access_grant richiede una corrispondenza esatta, l'utilizzo del parametro allowed_values: ["10"] non concederà l'accesso. Per concedere l'accesso, devi utilizzare allowed_values: ["[1, 20]"].

Lo stesso vale per gli attributi utente con più valori. Ad esempio, un attributo utente con il tipo di dati Filtro numerico (avanzato) con il valore 1, 3, 5 corrisponderà solo a una concessione di accesso con il parametro allowed_values: ["1, 3, 5"]. Allo stesso modo, una concessione di accesso con il parametro allowed_values: ["1"] non concederebbe l'accesso all'utente con più valori nell'attributo utente. Né una concessione di accesso con il parametro allowed_values: ["1", "3", "5"] concederebbe l'accesso a questo utente, perché, sebbene il parametro allowed_values: [] possa accettare più valori, nessuno dei tre valori nel parametro allowed_values: ["1", "3", "5"] corrisponde esattamente al valore dell'attributo utente 1, 3, 5. In questo caso, a un utente con un valore dell'attributo utente pari a 1, 3 o 5 verrà concesso l'accesso, poiché ciascuno di questi valori corrisponde a una delle opzioni del parametro allowed_values: ["1", "3", "5"].

Analogamente, access_grant richiede una corrispondenza esatta con gli attributi utente del tipo di dati Filtro stringa (avanzato). A differenza delle tipiche espressioni di filtro di Looker, l'utilizzo del parametro allowed_values: [ "Ca%" ] non non corrisponde a un attributo utente con i valori Canada o California. Solo un valore dell'attributo utente pari esattamente a Ca% verrà abbinato e gli verrà concesso l'accesso.

Gli utenti a cui non viene concesso l'accesso hanno un comportamento diverso a seconda della struttura LookML

Un utente che non ha accesso a una concessione di accesso avrà un comportamento diverso a seconda della struttura LookML a cui sta tentando di accedere. Consulta le pagine della documentazione di required_access_grants a livello di Explore, join, visualizzazione o campo per informazioni su come viene limitato l'accesso a queste strutture.

Le concessioni di accesso a più livelli vengono sommate

Se nidifichi le concessioni di accesso, queste sono cumulative. Ad esempio, puoi creare required_access_grants per una vista e required_access_grants per un campo all'interno della vista. Per visualizzare il campo, un utente deve disporre delle concessioni di accesso sia al campo che alla visualizzazione. Lo stesso vale per i join: se crei required_access_grants per le viste in un join e crei anche required_access_grants per il join di queste due viste, un utente deve disporre delle concessioni di accesso a entrambe le viste e al join per visualizzare la vista unita.

Accesso a strutture che fanno riferimento a strutture con limitazioni

Gli utenti possono accedere a Look o dashboard che contengono oggetti LookML a cui non hanno accesso. In queste situazioni, il Look o la dashboard verranno visualizzati come se gli oggetti LookML fossero stati rimossi dal modello.

Supponiamo di avere un'esplorazione A, che contiene l'unione A, la vista A e il campo A. Successivamente, applichiamo una limitazione dell'accesso a Esplora A. Come previsto, il join A, la visualizzazione A e il campo A erediteranno questa limitazione, ma solo quando gli utenti interagiscono con Explore A. Se il join A, la visualizzazione A o il campo A vengono utilizzati in un'esplorazione B diversa, non avranno necessariamente limitazioni di accesso. Pertanto, se prevedi di riutilizzare gli elementi LookML, ti suggeriamo di applicare le limitazioni di accesso al livello più basso possibile.