access_filter

Kommentar deaktivieren:

Nutzung


explore: explore_name {
  access_filter: {
    field: fully_scoped_field
    user_attribute: user_attribute_name
  }
}
Hierarchie
access_filter
Standardwert
Keine

Akzeptiert
Ein LookML-Feldname und das zugehörige Nutzerattribut

Besondere Regeln
Sie können mehrere access_filter-Parameter im selben Explore anwenden.

Definition

Mit access_filter können Sie nutzerspezifische Datenbeschränkungen anwenden. Im Gegensatz zu den meisten LookML-Parametern muss er in Verbindung mit anderen Einstellungen in Looker verwendet werden, damit er richtig funktioniert. Ein access_filter-Parameter ist spezifisch für ein einzelnes Explore. Sie müssen also darauf achten, dass Sie einen access_filter-Parameter auf jedes Explore anwenden, das eine Einschränkung benötigt.

Vergessen Sie nicht, access_filter jedem Explore hinzuzufügen, für das es erforderlich ist. Wenn Sie access_filter in einem Explore vergessen, in dem es enthalten sein sollte, werden die Daten nicht eingeschränkt und Nutzer können alle Daten in diesem Explore sehen.

Das Verhalten von access_filter ähnelt dem, wenn Sie mit einem Nutzer zusammenarbeiten und ihn auffordern, einen oder mehrere Filter in der Explore-Benutzeroberfläche anzuwenden, bevor er eine Abfrage ausführt. Der Nutzer arbeitet beispielsweise nur mit einem Teil Ihrer Kunden zusammen. In diesem Fall müssen Sie ihn dazu auffordern, einen Filter für den Kundennamen anzuwenden.

So implementieren Sie einen Zugriffsfilter:

  1. Legen Sie fest, für welches Feld oder welche Felder eine Einschränkung gelten soll. Wenn Sie beispielsweise von Nutzern verlangen, dass sie einen Filter für Kundennamen anwenden, haben Ihre Nutzer möglicherweise ein Customer-Explore mit einer Dimension namens Name. Auf dieses Feld wird mit customer.name verwiesen.
  2. Jeder Nutzer, der mit dem entsprechenden Explore 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 wenden diese Werte auf jeden Nutzer oder jede Nutzergruppe an, indem Sie die Funktion für Nutzerattribute von Looker verwenden. Weitere Informationen dazu finden Sie auf der Dokumentationsseite Nutzerattribute. Angenommen, wir erstellen das Nutzerattribut allowed_customers.
  3. Verknüpfen Sie das erstellte Nutzerattribut mit dem Feld, für das sein Wert als Filter verwendet werden soll. In unserem Beispiel möchten wir das Nutzerattribut allowed_customers so mit dem Feld customer.name verknüpfen:
explore: customer {
  access_filter: {
    field: customer.name
    user_attribute: allowed_customers
  }
}

Beispiele

Nutzer auf Informationen zu ihrer Vertriebsregion beschränken:

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

Nutzer können nur Informationen zu bestimmten Abteilungen ihrer Kunden sehen:

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ändig qualifizierte Feldnamen erforderlich

Wenn Sie einen Feldnamen ohne Ansichtsnamen schreiben, wird für die meisten Parameter in Looker ein Ansichtsname verwendet, der auf dem Ort basiert, an dem der Parameter verwendet wird. Bei access_filter ist das jedoch nicht möglich. Sie müssen sowohl den Ansichtsnamen als auch den Feldnamen angeben.

Sie könnten beispielsweise denken, dass dies funktioniert und name als Kundenname interpretiert wird:

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

Das 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 Filterwerte in der Benutzeroberfläche festlegen

Jeder Nutzer, der auf einen Explore zugreift, in dem access_filter verwendet wird, muss einen Wert im referenzierten Nutzerattribut haben. Das gilt auch für Nutzer mit der Administratorrolle, obwohl sie alle Daten sehen können. Nutzer, für die kein Wert für das Nutzerattribut festgelegt ist, erhalten eine Fehlermeldung, wenn sie versuchen, den Explore anzusehen.

  • Wenn Sie einem Administrator oder einem anderen Nutzer Zugriff auf alle Werte eines String-Felds gewähren möchten, legen Sie den Datentyp des Nutzerattributs auf String-Filter (erweitert) fest und verwenden Sie den Wert %, NULL.

  • Wenn Sie einem Administrator oder einem anderen Nutzer Zugriff auf alle Werte eines Zahlenfelds gewähren möchten, legen Sie den Datentyp des Nutzerattributs auf Zahlenfilter (erweitert) fest und verwenden Sie den Wert <0, >=0, NULL.

Wichtige Punkte

Wenn ein Explore access_filter enthält, wird der Standardwert von full_suggestions zu yes geändert.

Wenn ein Explore den Parameter access_filter enthält, wird der Standardwert von full_suggestions zu yes geändert. Dadurch wird die Abfrage für Vorschläge mit der Explore-Logik ausgeführt. Das bedeutet, dass access_filter angewendet wird, um die zurückgegebenen Vorschläge einzugrenzen. Die Liste der Vorschläge wird also auf die Daten beschränkt, auf die der Nutzer Zugriff haben soll.

Wenn Sie full_suggestions manuell auf no festlegen, wird die Abfrage für Filtervorschläge nicht ausgeführt.