access_grant

Usage

access_grant: access_grant_name {
  user_attribute: user_attribute_name
  allowed_values: [ "value_1", "value_2" , ... ]
}
היררכיה
access_grant
ערך ברירת המחדל
ללא

מקבל
השם של מאפיין משתמש עם תת-הפרמטר user_attribute ורשימה של ערכי מאפייני משתמש עם תת-הפרמטר allowed_values

הגדרה

מענק גישה הוא מבנה LookML שמוגדר בקובץ מודל ושולט בגישה למבנים אחרים של LookML, במיוחד ל-Explores, ל-joins, לתצוגות ולשדות. הפרמטר access_grant מגדיר הענקת גישה.

הפרמטר access_grant מקבל את שם מאפיין המשתמש עם תת-הפרמטר user_attribute ואת רשימת הערכים הקבילים של מאפיין המשתמש עם תת-הפרמטר allowed_values. רק משתמשים שהוקצה להם אחד מהערכים המותרים במאפיין המשתמש שצוין יכולים לגשת למבנים שנדרשת להם הרשאת גישה.

אחרי שמגדירים את הפרמטר required_access_grants, אפשר להשתמש בו ברמה של Explore,‏ join,‏ view או field כדי לדרוש מתן הרשאת גישה למבנים האלה.

לדוגמה, קוד ה-LookML הבא יוצר הרשאת גישה בשם can_view_financial_data, שמבוססת על מאפיין המשתמש department. רק משתמשים שהוקצו להם הערכים "finance" או "executive" במאפיין המשתמש department מקבלים גישה להרשאת הגישה can_view_financial_data:

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

לאחר מכן משייכים את מענק הגישה can_view_financial_data למבנה LookML באמצעות הפרמטר required_access_grants:

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

בדוגמה הזו, רק משתמשים שיש להם את ערך המאפיין הנכון של המשתמש להענקת הגישה can_view_financial_data יראו את המאפיין financial_data_field.

אפשר להגדיר כמה הרשאות גישה במודל, ואפשר להקצות כמה הרשאות גישה למבנה LookML באמצעות הפרמטר required_access_grants. במקרה כזה, למשתמש צריכה להיות גישה לכל מענקי הגישה שצוינו כדי שתהיה לו גישה למבנה LookML.

לדוגמה, קוד LookML הבא מגדיר שתי הרשאות גישה שונות:

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

לאחר מכן, בקובץ התצוגה, הפרמטר required_access_grants מציין את שתי הרשאות הגישה:

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

במקרה הזה, רק משתמשים שהערך "finance" או הערך "executive" הוקצו להם במאפיין המשתמש department וגם הערך "yes" הוקצה להם במאפיין המשתמש view_payroll יכולים לגשת לתצוגה המפורטת.

דוגמאות

מגדירים הענקת גישה שדורשת מהמשתמשים להזין את הערך "product_management" או את הערך "engineering" במאפיין המשתמש department כדי לקבל גישה להענקת הגישה engineering:

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

אפשר גם להגדיר הרשאות גישה באמצעות מאפייני משתמש שמקבלים נתונים מספריים או נתוני תאריך ושעה. כדי לעשות את זה, צריך להקיף את הערכים המותרים במירכאות כפולות, בדיוק כמו שמקיפים מחרוזת. לדוגמה, בהענקת הגישה הבאה יש הפניה למאפיין המשתמש id, שסוג הנתונים שלו הוא מספר. רק משתמשים עם הערך id 1, 2, 3, 4 או 5 יקבלו גישה:

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

בדוגמה הבאה יש הפניה למאפיין המשתמש start_date, שסוג הנתונים שלו הוא Date/Time. רק משתמשים שיש להם את הערך 2020-01-01 במאפיין המשתמש יקבלו גישה:

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

דברים שכדאי לקחת בחשבון

אי אפשר להשתמש בהרשאות גישה עם תכונות משתמש שניתנות לעריכה על ידי המשתמש

אי אפשר להשתמש במענקי גישה כדי לקבל מאפייני משתמש עם רמת גישת משתמש של עריכה. משתמשים יכולים לראות ולערוך את הערכים של מאפייני משתמשים עם רמת גישת משתמש של עריכה בדף החשבון שלהם. מטעמי אבטחה, רק מאפייני משתמש עם רמת גישת משתמש של ללא או צפייה מותרים לשימוש עם access_grant.

הערכים שמופיעים ב-allowed_values חייבים להיות זהים לערכים של מאפייני המשתמש

access_grant יעבוד עם מאפייני משתמש מסוג הנתונים מסנן מחרוזות (מתקדם), מסנן מספרים (מתקדם) או מסנן תאריך/שעה (מתקדם). אבל כדי להעניק גישה, הערכים שמופיעים בפרמטר allowed_values צריכים להיות זהים בדיוק לערך במאפיין המשתמש.

לדוגמה, אם יצרתם מאפיין משתמש בשם numeric_range עם סוג הנתונים Number Filter (advanced), תוכלו להשתמש בביטוי מסנן של Looker כדי להזין טווח של מספרים, כמו [1, 20]. בדוגמה הזו, ביטוי הסינון ב-Looker במאפיין המשתמש יחזיר טווח של מספרים בין 1 ל-20, כולל. עם זאת, מכיוון שהשימוש ב-access_grant מחייב התאמה מדויקת, שימוש בפרמטר allowed_values: ["10"] לא יאפשר גישה. כדי להעניק גישה, צריך להשתמש ב-allowed_values: ["[1, 20]"].

זה נכון גם לגבי מאפייני משתמש שיש להם כמה ערכים. לדוגמה, מאפיין משתמש עם סוג הנתונים מסנן מספרים (מתקדם) שקיבל את הערך 1, 3, 5 יתאים רק למענק גישה עם הפרמטר allowed_values: ["1, 3, 5"]. באופן דומה, הרשאת גישה עם הפרמטר allowed_values: ["1"] לא תעניק גישה למשתמש עם כמה ערכים במאפיין המשתמש. גם הענקת הרשאת גישה עם הפרמטר allowed_values: ["1", "3", "5"] לא תעניק גישה למשתמש הזה, כי למרות שהפרמטר allowed_values: [] יכול לקבל כמה ערכים, אף אחד משלושת הערכים בפרמטר allowed_values: ["1", "3", "5"] לא תואם בדיוק לערך מאפיין המשתמש 1, 3, 5. במקרה הזה, למשתמש עם ערך מאפיין משתמש של 1 או 3 או 5 תינתן גישה, כי כל אחד מהערכים האלה תואם לאחת מהאפשרויות בפרמטר allowed_values: ["1", "3", "5"].

באופן דומה, access_grant דורש התאמה מדויקת למאפייני משתמשים מסוג הנתונים String Filter (advanced). בניגוד לביטויי סינון רגילים ב-Looker, שימוש בפרמטר allowed_values: [ "Ca%" ] לא תואם למאפיין משתמש עם הערכים Canada או California. רק משתמש עם ערך מאפיין משתמש של בדיוק Ca% יקבל התאמה וגישה.

ההתנהגות של משתמשים שלא קיבלו גישה תהיה שונה בהתאם למבנה LookML

משתמש שאין לו גישה להרשאת גישה יחווה התנהגות שונה בהתאם למבנה LookML שאליו הוא מנסה לגשת. במאמרי העזרה בנושא required_access_grants ברמות Explore,‏ join,‏ view או field מוסבר איך הגישה למבנים האלה מוגבלת.

הגישה ניתנת בכמה רמות, והן מצטברות

אם מקננים הרשאות גישה, הן מצטברות. לדוגמה, אפשר ליצור required_access_grants לתצוגה וליצור required_access_grants לשדה בתוך התצוגה. כדי שהמשתמש יוכל לראות את השדה, צריך להעניק לו הרשאות גישה גם לשדה וגם לתצוגה. באופן דומה, לגבי הצטרפות: אם יוצרים required_access_grants לתצוגות בהצטרפות וגם יוצרים required_access_grants להצטרפות של שתי התצוגות האלה, למשתמש צריכות להיות הרשאות גישה לשתי התצוגות ולהצטרפות כדי לראות את התצוגה המצורפת.

גישה למבנים שמפנים למבנים מוגבלים

יכול להיות שלמשתמשים תהיה גישה ל-Looks או ללוחות בקרה שמכילים אובייקטים של LookML שאין להם גישה אליהם. במקרים כאלה, ה-Look או לוח הבקרה יוצגו כאילו אובייקטי ה-LookML האלה הוסרו מהמודל.

נניח שיש לנו ניתוח A, שמכיל את הצטרפות A, תצוגה A ושדה A. לאחר מכן, נגביל את הגישה לניתוח א'. כצפוי, ההגבלה הזו תחול על הצטרפות ל-A, על הצגת A ועל השדה A, אבל רק כשהמשתמשים יבצעו אינטראקציה עם ניתוח A. אם נעשה שימוש ב-join A, ב-view A או בשדה A ב-Explore B אחר, לא בהכרח יהיו להם הגבלות גישה. לכן, אם אתם מתכננים לעשות שימוש חוזר באלמנטים של LookML, מומלץ להחיל הגבלות גישה ברמה הנמוכה ביותר שאפשר.