Zugriff gewähren

Nutzung

access_grant: access_grant_name {
user_attribute: user_attribute_name
allowed_values: [ "value_1", "value_2" , ... ]
}
Hierarchie
access_grant
Standardwert
Keine

Akzeptiert
Der Name eines Nutzerattributs mit dem Unterparameter user_attribute und eine Liste von Nutzerattributwerten mit dem Unterparameter allowed_values

Definition

Eine Zugriffserteilung ist eine LookML-Struktur, die den Zugriff auf andere LookML-Strukturen steuert, insbesondere auf „Erkunden“, „Join“, „Ansichten“ und „Felder“. Der Parameter access_grant definiert eine Zugriffsberechtigung.

access_grant verwendet den Namen eines Nutzerattributs mit dem Unterparameter user_attribute und eine Liste zulässiger Werte für das Nutzerattribut mit dem Unterparameter allowed_values. Nur Nutzer, denen im angegebenen Nutzerattribut einer der zulässigen Werte zugewiesen ist, können auf Strukturen zugreifen, für die die Zugriffsgewährung erforderlich ist.

Nach dem Definieren können Sie den Parameter required_access_grants auf der Ebene Erkunden, Join, Ansicht oder Feld verwenden, um die Zugriffsberechtigung für diese Strukturen anzufordern.

Die unten aufgeführte LookML erstellt beispielsweise eine Zugriffsberechtigung mit dem Namen can_view_financial_data, die auf dem Nutzerattribut department basiert. Nur Nutzern, denen im Nutzerattribut department die Werte "finance" oder "executive" zugewiesen sind, wird Zugriff auf die can_view_financial_data-Zugriffsberechtigung gewährt:

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

Anschließend verknüpfen Sie den Zugriff can_view_financial_data mit einer LookML-Struktur mithilfe des Parameters required_access_grants:

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

Im Beispiel oben sehen nur Nutzer mit dem richtigen Nutzerattributwert für die can_view_financial_data-Zugriffszuweisung die Dimension financial_data_field.

Sie können in einem Modell mehrere Zugriffsberechtigungen definieren und einer LookML-Struktur mit dem Parameter required_access_grants mehrere Zugriffsberechtigungen zuweisen. In diesem Fall muss ein Nutzer Zugriff auf alle angegebenen Zugriffsberechtigungen haben, um Zugriff auf die LookML-Struktur zu haben.

Im folgenden Beispiel werden in LookML zwei verschiedene Zugriffsberechtigungen definiert:

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" ]
}

In der Ansichtsdatei unten gibt der Parameter required_access_grants dann beide Zugriffsberechtigungen an:

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

In diesem Fall können nur Nutzer auf die Ansicht zugreifen, bei denen entweder der Wert "finance" oder der Wert "executive" ihrem Nutzerattribut department und der Wert "yes" ihrem Nutzerattribut view_payroll zugewiesen ist.

Beispiele

Definieren Sie eine Zugriffsberechtigung, bei der Nutzer entweder den Wert "product_management" oder den Wert "engineering" im Nutzerattribut department haben müssen, um Zugriff auf die engineering-Zugriffsberechtigung zu haben:

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

Sie können Zugriffsberechtigungen auch mit Nutzerattributen definieren, die numerische Werte oder Datum und Uhrzeit verwenden. Dazu müssen Sie die zulässigen Werte wie bei einem String in doppelte Anführungszeichen setzen. Die folgende Zugriffsgewährung verweist beispielsweise auf das Nutzerattribut id mit dem Datentyp number. Nur Nutzern mit einem id-Wert von 1, 2, 3, 4 oder 5 wird Zugriff gewährt:

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

Im folgenden Beispiel wird auf das Nutzerattribut start_date mit dem Datentyp Datum/Uhrzeit verwiesen. Nur Nutzern mit dem Wert 2020-01-01 im Nutzerattribut wird Zugriff gewährt:

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

Wichtige Punkte

Vom Nutzer bearbeitbare Nutzerattribute sind bei Zugriffsberechtigungen nicht zulässig

Zugriffsberechtigungen können nicht für Nutzerattribute mit der Nutzerzugriffsebene Bearbeiten akzeptiert werden. Nutzer können auf der Kontoseite die Werte von Nutzerattributen mit der Nutzerzugriffsebene Bearbeiten aufrufen und bearbeiten. Aus Sicherheitsgründen sind nur Nutzerattribute mit der Nutzerzugriffsebene Keine oder Ansicht mit access_grant zulässig.

Die in allowed_values aufgeführten Werte müssen genau mit den Nutzerattributwerten übereinstimmen

access_grant funktioniert mit Nutzerattributen mit dem Datentyp Stringfilter (erweitert), Zahlenfilter (erweitert) oder Datum/Uhrzeit-Filter (erweitert). Damit Sie jedoch Zugriff gewähren können, müssen die im Parameter allowed_values aufgeführten Werte genau mit dem Wert im Nutzerattribut übereinstimmen.

Wenn Sie beispielsweise ein Nutzerattribut namens numeric_range mit dem Datentyp Zahlenfilter (erweitert) erstellt haben, können Sie einen Looker-Filterausdruck verwenden, um einen Zahlenbereich einzugeben, z. B. [1, 20]. In diesem Beispiel gibt der Filterausdruck von Looker im Nutzerattribut einen Zahlenbereich zwischen 1 und 20 (einschließlich) zurück. Da für access_grant eine genaue Übereinstimmung erforderlich ist, wird die Verwendung des Parameters allowed_values: ["10"] nicht gewährt. Um Zugriff zu gewähren, müssen Sie allowed_values: ["[1, 20]"] verwenden.

Das gilt auch für Nutzerattribute mit mehreren Werten. Beispielsweise entspricht ein Nutzerattribut mit dem Datentyp Zahlenfilter (erweitert) bei dem Wert 1, 3, 5 nur einer Zugriffsgewährung mit dem Parameter allowed_values: ["1, 3, 5"]. Dementsprechend würde eine Zugriffsberechtigung mit dem Parameter allowed_values: ["1"] dem Nutzer mit mehreren Werten im Nutzerattribut keinen Zugriff gewähren. Weder würde eine Zugriffsberechtigung mit dem Parameter allowed_values: ["1", "3", "5"] diesem Nutzer Zugriff gewähren, denn der Parameter allowed_values: [] akzeptiert zwar mehrere Werte, aber keiner der drei Werte im Parameter allowed_values: ["1", "3", "5"] stimmt genau mit dem Nutzerattributwert 1, 3, 5 überein. In diesem Fall erhält ein Nutzer mit dem Nutzerattributwert 1, 3 oder 5 Zugriff, da jeder dieser Werte mit einer der Optionen im Parameter allowed_values: ["1", "3", "5"] übereinstimmt.

Analog dazu erfordert access_grant eine genaue Übereinstimmung mit Nutzerattributen vom Datentyp Stringfilter (erweitert). Im Gegensatz zu typischen Filterausdrücken entspricht der Parameter allowed_values: [ "Ca%" ] nicht keinem Benutzerattribut mit den Werten Canada oder California. Nur ein Nutzerattributwert von genau Ca% würde zugeordnet und ihm wurde Zugriff gewährt.

Nutzer, denen kein Zugriff gewährt wird, können sich je nach LookML-Struktur anders verhalten

Bei Nutzern, die keinen Zugriff auf eine Zugriffsberechtigung haben, ändert sich das Verhalten je nach LookML-Struktur, auf die sie zugreifen möchten. Informationen dazu, wie der Zugriff auf diese Strukturen eingeschränkt ist, finden Sie auf der required_access_grants-Dokumentationsseite auf den Ebenen Erkunden, Teilnehmen, Ansehen und Feld.

Zugriffsberechtigungen auf mehreren Ebenen werden addiert

Wenn Sie Zugriffsberechtigungen verschachteln, sind diese additiv. Sie können beispielsweise required_access_grants für eine Ansicht und required_access_grants für ein Feld innerhalb der Ansicht erstellen. Um das Feld sehen zu können, muss ein Nutzer sowohl für das Feld als auch für die Ansicht Zugriffsberechtigungen haben. Gleichermaßen für Joins: Wenn Sie required_access_grants für die Ansichten in einem Join und zusätzlich required_access_grants für den Join dieser beiden Ansichten erstellen, muss ein Nutzer Zugriffsberechtigungen für beide Ansichten und den Join erhalten, damit die verbundene Ansicht angezeigt werden kann.

Auf Strukturen zugreifen, die auf eingeschränkte Strukturen verweisen

Nutzer können auf Looks oder Dashboards mit LookML-Objekten zugreifen, auf die sie keinen Zugriff haben. In diesen Fällen wird der Look oder das Dashboard so angezeigt, als ob diese LookML-Objekte aus dem Modell entfernt wurden.

Angenommen, wir haben die Funktion „Erkunden A“, die Join A, Ansicht A und Feld A enthält. Als Nächstes legen wir eine Zugriffsbeschränkung für „Entdecken A“ fest. Wie erwartet verknüpfen Sie A, Ansicht A und Feld A übernehmen diese Einschränkung, aber nur, wenn Nutzer mit „Erkunden A“ interagieren. Wenn Join A, Datenansicht A oder Feld A in einem anderen Explore B verwendet wird, gibt es nicht unbedingt Zugriffsbeschränkungen. Wenn Sie beabsichtigen, LookML-Elemente wiederzuverwenden, sollten Sie Zugriffsbeschränkungen auf der niedrigsten Ebene anwenden.