Nutzung
user_attribute: user_attribute_name
allowed_values: [ "value_1", "value_2" , ... ]
}
Hierarchie
access_grant |
Standardwert
KeineAkzeptiert
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.