- Row Level Security (RLS): שולט באילו רשומות משתמשים יכולים לגשת.
- Field Level Security (FLS): שולט באילו שדות בתוך רשומות משתמשים יכולים לגשת.
גישת service role עוקפת את הכללים האלה:
base44.asServiceRole עוקף לחלוטין גם את RLS וגם את FLS, בלי קשר להגדרת ה-entity. לכן לא צריך כלל admin תואם כדי שיוכל לקרוא או לכתוב רשומה. הוא זמין רק בפונקציות בקאנד שמתארחות ב-Base44. הפונקציה שלך אחראית לכל בדיקות הגישה שהיא צריכה.סוגי הרשאה
לכל רמת אבטחה יש הרשאות שונות שניתן להגדיר. עבור כל הרשאה, אתה מגדיר מי מורשה לבצע את הפעולה.Row Level Security (RLS)
create- הוסף רשומות חדשותread- צפה ברשומותupdate- שנה רשומותdelete- הסר רשומות
Field Level Security (FLS)
read- צפה בשדהwrite- צור או שנה את השדה
ערכי הרשאה
כל הרשאה מקבלת אחד מהערכים הבאים:true- אפשר לכל המשתמשיםfalse- חסום את כל המשתמשים{<condition>}- אפשר למשתמשים שתואמים את התנאי
ההבדל בין קריאות וכתיבות שנחסמו
קריאות שנחסמו מתנהגות כאילו הנתונים לא קיימים, כך שהן לא חושפות מה יש שם. כתיבות שנחסמו זורקות שגיאה, כך ששינוי חסום אף פעם לא נכשל בשקט.תחביר תנאי
בעת שימוש ב-{<condition>} כערך הרשאה, אתה יכול להגדיר כללים שבודקים מאפייני משתמש או תפקידים.
תנאי שמפנה ל-
{{user.*}} או משתמש ב-user_condition דורש קורא מאומת. לקורא אנונימי אין משתמש להשוות אליו. לכן הכלל חוסם אותו לחלוטין, במקום להיות מוערך כ-false.created_by- אימייל של המשתמש שיצר את הרשומהcreated_by_id- מזהה המשתמש שיצר את הרשומהentity_name- שם סוג ה-entityapp_id- App IDenvironment- אוprodאוdevis_sample- האם זה נתוני sampleis_deleted- דגל soft deletedeleted_date- מתי זה נמחקdata.*- כל שדה מהמאפיינים של ה-entity schema שלך
{{user.email}}- האימייל של המשתמש{{user.id}}- מזהה המשתמש{{user.role}}- תפקיד המשתמש{{user.data.*}}- שדות משתמש נוספים שאתה מגדיר
user_condition.
שדות משתמש שאתה יכול לבדוק:
email- האימייל של המשתמשid- מזהה המשתמשrole- תפקיד המשתמשdata.*- שדות משתמש מותאמים
$or, $and, $nor, $in, $nin, $all
דוגמה:
דוגמת Row Level Security (RLS)
הוסףrls ברמת ה-entity:
דוגמת Field Level Security (FLS)
הוסףrls למאפייני שדה בודדים:
דוגמה מלאה עם אבטחה
הנה entity schema עם RLS ו-FLS:פריסת כללי אבטחה
כללי אבטחה הם חלק מה-entity schema שלך. לאחר הוספה או עדכון של כללי אבטחה, פרוס באמצעותentities push. כללי אבטחה גם נפרסים אוטומטית כאשר אתה מריץ את פקודת deploy כדי לפרוס את כל הפרויקט שלך.
ראה גם
- Entities Overview: למד על תצורת schema של מסד הנתונים
- Entity Schemas: הגדר את מבנה ה-entity שלך
- User Schema: entity מובנה מיוחד לאימות משתמשים
- גישה לנתונים עם service role: קריאה וכתיבה של נתונים בלי שכללי הגישה חלים
- Project Structure: כיצד entity schemas משתלבים בפרויקט שלך
דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.