Zugriffsfilter

Nutzung

Explore: Explore-Name {
access_filter: {
Feld: full_scope_field
user_attribute: user_attribute_name
}
}
Hierarchie
access_filter
Standardwert
Keine

Akzeptiert
Ein LookML-Feldname und das zugehörige Nutzerattribut

Sonderregeln
Sie können mehrere access_filter-Parameter in demselben „Entdecken“ verwenden

Definition

Mit access_filter können Sie nutzerspezifische Dateneinschränkungen anwenden. Im Gegensatz zu den meisten LookML-Parametern muss er in Verbindung mit anderen Einstellungen in Looker verwendet werden, damit er ordnungsgemäß funktioniert. Ein access_filter-Parameter gilt nur für einen einzelnen Discover-Parameter. Daher musst du darauf achten, dass du auf jede „Entdecken“-Anfrage, die eine Einschränkung erfordert, einen access_filter-Parameter anwendest.

Denke daran, access_filter bei allen Discover hinzuzufügen, die es benötigen. Wenn du vergisst, „access_filter“ einer explorativen Datenanalyse hinzuzufügen, die darauf zugreifen sollte, werden die Daten nicht eingeschränkt und Nutzer können alle Daten darin sehen.

Das Verhalten von access_filter ist dem Verhalten eines Nutzers ähnlich. Er muss in der Benutzeroberfläche von „Entdecken“ mindestens einen Filter anwenden, bevor er eine Abfrage ausführen kann. Wenn ein Nutzer beispielsweise nur mit einem Teil Ihrer Kunden arbeitet, muss er einen Filter für Kundennamen anwenden.

Zur Implementierung eines Zugriffsfilters sind mehrere Schritte erforderlich:

  1. Entscheiden Sie, welche Felder eine Einschränkung benötigen. Im Beispiel oben können die Nutzer die Dimension Erkunden mit der Dimension Name sehen. Die Methode, mit der auf dieses Feld verwiesen wird, ist customer.name.
  2. Jeder Nutzer, der mit dem betreffenden Bericht interagiert, benötigt einen Wert für den Zugriffsfilter. In unserem Beispiel benötigt jeder Nutzer die Liste der Kundennamen, die er sehen darf. Sie können diese Werte mithilfe der Looker-Funktion für Nutzerattribute auf jeden Nutzer oder jede Nutzergruppe anwenden. Weitere Informationen finden Sie auf der Dokumentationsseite Nutzerattribute. Angenommen, wir erstellen das Nutzerattribut allowed_customers.
  3. Abschließend verbinden Sie das erstellte Nutzerattribut mit dem Feld, dessen Wert als Filter verwendet werden soll. In diesem Beispiel soll das Nutzerattribut allowed_customers mit dem Feld customer.name verbunden werden:
explore: customer {
  access_filter: {
    field: customer.name
    user_attribute: allowed_customers
  }
}

Beispiele

Nutzer auf Informationen zu ihrer Verkaufsregion beschränken:

explore: customer {
  access_filter: {
    field: sales.region
    user_attribute: sales_region
  }
}

Nutzer auf Informationen zu bestimmten Abteilungen ihrer Kunden beschränken:

explore: customer {
  access_filter: {
    field: customer.name
    user_attribute: allowed_customers
  }
  access_filter: {
    field: product.department
    user_attribute: allowed_departments
  }
}

Häufige Herausforderungen

Für access_filter sind vollständige Bereichsnamen erforderlich

Wenn Sie einen Feldnamen ohne Ansichtsnamen eingeben, wird bei den meisten Parametern in Looker von einem Ansichtsnamen ausgegangen, der auf dem Ort basiert, an dem der Parameter verwendet wird. access_filter funktioniert jedoch nicht auf diese Weise. Daher müssen Sie sowohl den Ansichtsnamen als auch den Feldnamen eingeben.

Beispiel: Sie denken, dass dies funktioniert und name als Kundenname interpretiert wird:

explore: customer {
  access_filter: {
    field: name
    user_attribute: allowed_customers
  }
}

Dies ist jedoch nicht der Fall und Sie erhalten eine Fehlermeldung. Stattdessen müssen Sie Folgendes schreiben:

explore: customer {
  access_filter: {
    field: customer.name
    user_attribute: allowed_customers
  }
}

Auch Administratoren müssen in der Benutzeroberfläche Filterwerte festlegen.

Jeder Nutzer, der auf „Entdecken“ zugreift und „access_filter“ verwendet, muss im angegebenen Nutzerattribut einen Wert haben. Das gilt auch für Nutzer mit Administratorrolle, obwohl sie alle Daten sehen können. Nutzer, für die kein Nutzerattributwert festgelegt ist, erhalten eine Fehlermeldung, wenn sie versuchen, die Funktion „Erkunden“ aufzurufen.

  • Wenn Sie einem Administrator oder einem anderen Nutzer Zugriff auf alle Werte eines Stringfelds gewähren möchten, setzen Sie den Datentyp des Nutzerattributs auf Stringfilter (erweitert) und verwenden Sie den Wert %, NULL.

  • Um einem Administrator oder einem anderen Nutzer Zugriff auf alle Werte eines Zahlenfelds zu gewähren, setzen Sie den Datentyp des Nutzerattributs auf Zahlenfilter (erweitert) und verwenden Sie den Wert <0, >=0, NULL.