השבתת תגובה:
Usage
explore: explore_name {
access_filter: {
field: fully_scoped_field
user_attribute: user_attribute_name
}
}
|
היררכיה
access_filter |
ערך ברירת המחדל
ללא
מקבל
שם שדה LookML ומאפיין המשתמש המשויך
כללים מיוחדים
אפשר להחיל כמה פרמטרים של access_filter באותו דוח ניתוח
|
הגדרה
access_filter מאפשרת להחיל הגבלות על נתונים ספציפיים למשתמש. בניגוד לרוב הפרמטרים של LookML, צריך להשתמש בו בשילוב עם הגדרות אחרות ב-Looker כדי שהוא יפעל בצורה תקינה. פרמטר access_filter ספציפי לניתוח יחיד, ולכן צריך לוודא שמחילים פרמטר access_filter על כל ניתוח שצריך להגביל.
אל תשכחו להוסיף את
access_filterלכל דוח Explore שצריך אותו. אם שכחתם להוסיף אתaccess_filterלניתוח שצריך לכלול אותו, הנתונים לא יוגבלו והמשתמשים יוכלו לראות את כל הנתונים בניתוח הזה.
ההתנהגות של access_filter תהיה דומה למצב שבו אתם יושבים עם משתמש ומבקשים ממנו להחיל מסנן אחד או יותר בממשק המשתמש של התכונה 'ניתוח נתונים' לפני שהוא מריץ שאילתה כלשהי. לדוגמה, יכול להיות שהמשתמש מטפל רק בקבוצת משנה של הלקוחות שלכם, ולכן תדרשו ממנו להחיל מסנן של שמות לקוחות.
כדי להטמיע מסנן גישה, צריך לבצע כמה שלבים:
- מחליטים לאילו שדות רוצים להוסיף הגבלה. בדוגמה של דרישה ממשתמשים להחיל מסנן של שם לקוח, יכול להיות שלמשתמשים שלכם יש ניתוח נתונים ב-Explore מסוג לקוח עם מאפיין שנקרא שם. הדרך להתייחס לשדה הזה היא
customer.name. - לכל משתמש שמבצע אינטראקציה עם הניתוח המדובר ב-Explore צריך להיות ערך למסנן הגישה. בדוגמה שלנו, כל משתמש יצטרך את רשימת שמות הלקוחות שהוא מורשה לראות. אתם יכולים להחיל את הערכים האלה על כל משתמש או קבוצת משתמשים באמצעות התכונה 'מאפייני משתמש' ב-Looker. מידע נוסף זמין במאמר בנושא מאפייני משתמש. נניח שיצרנו מאפיין משתמש בשם allowed_customers.
- לבסוף, מקשרים את מאפיין המשתמש שיצרתם לשדה שבו רוצים להשתמש בערך שלו כמסנן. בדוגמה שלנו, נרצה לקשר את מאפיין המשתמש allowed_customers לשדה
customer.name, כך:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
דוגמאות
הגבלת המשתמשים כך שיוכלו לראות מידע על האזור הגיאוגרפי שבו מתבצעות המכירות שלהם:
explore: customer {
access_filter: {
field: sales.region
user_attribute: sales_region
}
}
הגבלת המשתמשים כך שיוכלו לראות מידע על מחלקות ספציפיות בקרב הלקוחות שלהם:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
access_filter: {
field: product.department
user_attribute: allowed_departments
}
}
אתגרים נפוצים
access_filter נדרשים שמות שדות עם היקף מלא
אם כותבים שם שדה בלי שם תצוגה, רוב הפרמטרים ב-Looker ישתמשו בשם תצוגה שמבוסס על המקום שבו נעשה שימוש בפרמטר. עם זאת, access_filter לא פועל בצורה הזו, וצריך לכתוב גם את שם התצוגה וגם את שם השדה.
לדוגמה, יכול להיות שתחשבו שהקוד הבא יעבוד, ושהערך name יפורש כשם הלקוח:
explore: customer {
access_filter: {
field: name
user_attribute: allowed_customers
}
}
אבל זה לא המצב, ותופיע שגיאה. במקום זאת, צריך לכתוב:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
גם אדמינים צריכים להגדיר ערכי סינון בממשק המשתמש
לכל משתמש שניגש לניתוח באמצעות access_filter צריך להיות ערך במאפיין המשתמש שאליו מתייחסים. ההגבלה הזו חלה גם על משתמשים עם תפקיד אדמין, למרות שהם יכולים לראות את כל הנתונים. משתמשים שלא הוגדר להם ערך מאפיין יקבלו שגיאה כשינסו להציג את התכונה 'ניתוח נתונים'.
כדי לתת לאדמין או למשתמש אחר גישה לכל הערכים של שדה מחרוזת, מגדירים את סוג הנתונים של מאפיין המשתמש למסנן מחרוזת (מתקדם) ומשתמשים בערך
%, NULL.כדי לתת לאדמין או למשתמש אחר גישה לכל הערכים בשדה מספר, מגדירים את סוג הנתונים של מאפיין המשתמש למסנן מספרים (מתקדם) ומשתמשים בערך
<0, >=0, NULL.
חשוב לדעת
כשדוח ניתוח כולל את access_filter, ערך ברירת המחדל של full_suggestions משתנה ל-yes
כשמשתנה Explore כולל את הפרמטר access_filter, ערך ברירת המחדל של full_suggestions משתנה ל-yes. כתוצאה מכך, שאילתת ההצעות תפעל באמצעות הלוגיקה של התכונה 'ניתוח נתונים', כלומר access_filter יוחל כדי לצמצם את ההצעות שיוחזרו, והרשימה תכלול רק את הנתונים שהמשתמש אמור לקבל אליהם גישה.
אם מגדירים את full_suggestions ל-no באופן ידני, השאילתה להצעת סינון לא תופעל.