תצוגות מאובטחות עם פרמטרים ב-AlloyDB ל-PostgreSQL מאפשרות לאכוף בקרת גישה לשורות ברמת האפליקציה, כך שהמשתמשים יכולים לראות רק את הנתונים שיש להם הרשאה לגשת אליהם. התצוגות האלה הן הרחבה של התצוגות המאובטחות של PostgreSQL, והן מאפשרות לכלול פרמטרים עם שמות ספציפיים לאפליקציה בהגדרות של התצוגה, ולהעביר ערכי פרמטרים שחלים לאורך כל הרצת השאילתה.
דוגמה לתצוגה מאובטחת עם פרמטרים:
CREATE VIEW secure_checked_items WITH (security_barrier) AS
SELECT bag_id, timestamp, location
FROM checked_items t
WHERE customer_id = $@app_end_userid;
כדי לשלוח שאילתות לתצוגות מאובטחות עם פרמטרים, אפשר להשתמש בפונקציה execute_parameterized_query או להריץ את ההצהרה EXECUTE .. WITH VIEW PARAMETERS.
מידע נוסף זמין במאמר ניהול אבטחת המידע של האפליקציה באמצעות תצוגות מאובטחות עם פרמטרים ב-AlloyDB.
היתרונות של תצוגות מאובטחות עם פרמטרים
תצוגות מאובטחות עם פרמטרים מתאימות לניהול אבטחת המידע ברמת מסד הנתונים, במיוחד כשמדובר בשאילתות אד-הוק ממקורות לא מהימנים, כמו שאילתות שתורגמו משפה טבעית. התצוגות האלה מאפשרות להטמיע בקרת גישה פרטנית בצורה גמישה.
לדוגמה, נניח שיש אפליקציה שעוקבת אחרי הכבודה של הלקוחות. לקוח עם מזהה משתמש 12345 שואל: "איפה התיק שלי?" בתרחיש הזה, תצוגות מאובטחות עם פרמטרים מבטיחות שהשאילתה תחזיר רק שורות שנגישות למשתמש ששלח את השאילתה – לדוגמה, שורות שמקושרות למזהה המשתמש 12345.
צמצום סיכוני אבטחה
תצוגות מאובטחות עם פרמטרים עוזרות לצמצם את סיכוני האבטחה כשמשתמשי קצה מריצים שאילתות לא מהימנות, כמו שאילתות בשפה טבעית, במסד הנתונים. הסיכונים האלה כוללים:
הנחיות זדוניות: משתמשים עלולים לנסות לשנות את המודל הבסיסי כדי לגשת לכל נתוני האפליקציה.
שאילתות SQL בהיקף רחב: מודלים גדולים של שפה (LLM) עלולים ליצור שאילתות SQL שחושפות מידע אישי רגיש, גם אם השאילתות של המשתמשים נוצרו מתוך כוונה טובה.
באמצעות תצוגות מאובטחות עם פרמטרים, אתם יכולים להגביל את טווח השורות שזמינות למשתמשים ספציפיים באפליקציה. אמצעי הבקרה הזה עוזר להגן על נתוני האפליקציה, לא משנה איך המשתמשים מנסחים את השאילתות שלהם.
ניהול הרשאות גישה לנתונים
תצוגות מאובטחות עם פרמטרים נותנות מענה לאתגרים נפוצים בניהול הגישה לנתונים של מספר גדול והולך של משתמשים.
ניהול משתמשים פשוט יותר: באמצעות תצוגות מאובטחות עם פרמטרים, אתם יכולים להשתמש בתפקיד אחד במסד הנתונים כדי לשרת את כל משתמשי הקצה, במקום להשתמש בשיטות שבהן צריך ליצור משתמש או תפקיד נפרד במסד הנתונים לכל משתמש קצה. תצוגות מאובטחות עם פרמטרים עוזרות לפשט את ניהול המשתמשים והחיבורים באפליקציות שבהן כל משתמש קצה צריך גישה רק לנתונים שלו.
לדוגמה, באפליקציה של חברת תעופה שבה הלקוחות אמורים לראות רק את ההזמנות שלהם, אפשר להגדיר תצוגה מאובטחת אחת עם פרמטרים, שמוגדרת לפי מזהה משתמש הקצה. התצוגה הזו מאפשרת לתפקיד אחד במסד הנתונים – עם גישה לתצוגה, ולא לטבלה הבסיסית – לשרת את כל המשתמשים, מה שמפשט את ניהול המשתמשים ואת החיבורים למסד הנתונים.
אכיפת אבטחה יעילה: תצוגות מאובטחות עם פרמטרים כוללות אמצעי בקרת גישה באופן מובנה. כששולחים שאילתה לתצוגה, פרמטרי האבטחה שהוגדרו נאכפים באופן עקבי, בלי קשר למשתמש שניגש לתצוגה. הגישה הזו שונה ממצבים שבהם כללי מדיניות האבטחה הבסיסיים במסדי נתונים טבלאיים לא חלים באופן אוטומטי על תצוגות בלי הגדרה נוספת.
למידע נוסף על מנגנוני האבטחה הקיימים ב-PostgreSQL, כמו מדיניות אבטחה ברמת השורה (RLS), קראו את המאמר מדיניות אבטחה ברמת השורה.
מנגנון אבטחה
תצוגות מאובטחות עם פרמטרים מספקות למפתחי אפליקציות אבטחת מידע ובקרת גישה לשורות באמצעות השיטות הבאות:
- תצוגות שנוצרו באמצעות האפשרות
WITH (security_barrier)מספקות אבטחה ברמת השורה, בכך שהן מונעות מפונקציות ומאופרטורים שנבחרו באופן זדוני לקבל ערכים משורות עד שהתצוגה מסיימת את פעולתה. מידע נוסף על הסעיףWITH (security_barrier)זמין במאמר כללים והרשאות. - הגדרת פרמטרים באמצעות פרמטרים של תצוגה עם שם מאפשרת תצוגה מוגבלת של מסד הנתונים, שמוגדרת באמצעות ערכים שסופקו על ידי האפליקציה על סמך אבטחה ברמת האפליקציה, כמו אימות של משתמש הקצה.
- אכיפת הגבלות נוספות על שאילתות שניגשות לתצוגות עם פרמטרים שימושית לאפליקציות שמריצות שאילתות לא מהימנות ממשתמשי קצה, כמו אלה שנוצרות על ידי AI שממיר שפה טבעית ל-SQL. האכיפה הזו מונעת משאילתות לחרוג ממעטפת האבטחה שמספקות תצוגות מאובטחות עם פרמטרים, ועוזרת לנהל את השימוש במשאבים. למידע נוסף על הגבלות של שאילתות, ראו הגבלות שנאכפות על שאילתות.
מגבלות
צריך להפעיל את הדגל של התצוגה עם הפרמטרים בכל מופע של AlloyDB בנפרד. אובייקטים של תצוגה עם פרמטרים שנוצרו במכונה הראשית מופצים למכונות של מאגר הקריאה ולרפליקות באזורים שונים. עם זאת, הגדרת הדגל
parameterized_views.enabledלא חלה באופן אוטומטי, וצריך להגדיר אותה באופן ידני בכל מכונה. למידע נוסף, ראו לפני שמתחילים.אי אפשר לשלוח שאילתות לתצוגות עם פרמטרים במכונה של מאגר לקריאה בלבד או ברפליקה חוצת-אזורים לפני שמפעילים את הדגל
parameterized_views.enabledבכל מכונה.
המאמרים הבאים
- ניהול אבטחת מידע של האפליקציה באמצעות תצוגות מאובטחות עם פרמטרים.
- אבטחה ושליטה בגישה לנתוני אפליקציות באמצעות תצוגות מאובטחות עם פרמטרים.