תצוגות מאובטחות עם פרמטרים ב-Cloud SQL ל-MySQL מספקות אבטחת נתונים ובקרת גישה לשורות באפליקציות, תוך תמיכה ב-SQL. התצוגות האלה תומכות בשליפת ערכי נתונים – תהליך של אחזור פריטי נתונים ספציפיים מעמודות – והן עוזרות להגן מפני התקפות הזרקת הנחיות. תצוגות מאובטחות עם פרמטרים עוזרות לוודא שמשתמשי הקצה יכולים לראות רק את הנתונים שאמורה להיות להם גישה אליהם.
תצוגות מאובטחות עם פרמטרים הן הרחבה של תצוגות MySQL, שמאפשרות להשתמש בהגדרות של תצוגות בפרמטרים בעלי שם ספציפי לאפליקציה. היכולת הזו מספקת ממשק שמקבל שאילתה וערכים לפרמטרים עם שמות. התצוגות מריצות את השאילתה עם הערכים האלה, שמשמשים לאורך כל ההרצה של השאילתה.דוגמה לתצוגה מאובטחת עם פרמטרים
בדוגמה הבאה מוצג איך ליצור תצוגה מאובטחת עם פרמטרים בטבלה על ידי הוספת משתנה סשן לסעיףWHERE.
-- Create a view with a parameter
CREATE VIEW v_orders AS
SELECT * FROM orders
WHERE customer_id = @local_customer_id AND year >= @earliest_year;
אחר כך אפשר להגדיר את הפרמטר לתצוגה ולהריץ שאילתה.
-- Set the parameter and query
SELECT /*+ SET_VIEW_VARS(local_customer_id=5, earliest_year=2021) */ * FROM v_orders;
-- Or query through a stored procedure
CALL mysql.execute_parameterized_query(
'SELECT * FROM db.v_orders',
'local_customer_id = 5, earliest_year = 2021');
תרחישים לדוגמה
מודלים גדולים של שפה (LLM) עשויים ליצור שאילתות SQL שחושפות נתונים רגישים.
תצוגות מאובטחות עם פרמטרים מנהלות את אבטחת הנתונים ברמת מסד הנתונים, במיוחד שאילתות אד-הוק ממקורות לא מהימנים, כמו שאילתות שתורגמו משפה טבעית. לדוגמה, אפשר להשתמש בתצוגות מאובטחות עם פרמטרים כדי לספק אבטחת נתונים לאפליקציות שבהן משתמשים יכולים להנפיק שאילתות בשפה טבעית, כמו "הצגת ההזמנות שלי".
אפשר להשתמש בתצוגות מאובטחות עם פרמטרים כדי להחיל את הדרישות הבאות על האופן שבו Cloud SQL for MySQL מבצע את השאילתה הזו:
- השאילתה קוראת רק את האובייקטים והעמודות במסד הנתונים שציינתם בתצוגות המאובטחות המופרדות של מסד הנתונים.
- השאילתה קוראת רק את שורות מסד הנתונים שמשויכות למשתמש ששלח את השאילתה. לשורות שמוחזרות יש קשר נתונים לשורת הטבלה של המשתמש.
מידע נוסף על הגדרת אבטחה ובקרת גישה זמין במאמר שימוש בתצוגות מאובטחות עם פרמטרים.
תצוגות מאובטחות עם פרמטרים עוזרות לצמצם את סיכוני האבטחה שמתרחשים כשמשתמשי קצה מקבלים הרשאה להריץ שאילתות לא מהימנות, כמו שאילתות בשפה טבעית, בטבלת מסד הנתונים. סיכוני האבטחה כוללים את הדברים הבאים:
- משתמשים יכולים לשלוח מתקפות של הזרקת הנחיות ולנסות לתמרן את המודל הבסיסי כדי לחשוף את כל הנתונים שהאפליקציה יכולה לגשת אליהם.
- מודל השפה הטבעית ל-SQL (NL2SQL) עשוי ליצור שאילתות SQL שההיקף שלהן רחב יותר ממה שמתאים מסיבות של אבטחת נתונים. סיכון האבטחה הזה עלול לחשוף מידע אישי רגיש בתגובה לשאילתות של משתמשים, גם אם הכוונות שלהם טובות.
בעזרת תצוגות מאובטחות עם פרמטרים, אתם יכולים להגדיר את הטבלאות והעמודות ששאילתות לא מהימנות יכולות לשלוף מהן נתונים. התצוגות האלה מאפשרות להגביל את טווח השורות שזמינות למשתמש יחיד באפליקציה. ההגבלות האלה מאפשרות לכם גם לשלוט באופן הדוק בנתונים שמשתמשי האפליקציה יכולים לראות באמצעות שאילתות בשפה טבעית, בלי קשר לניסוח השאילתות.
לדוגמה, יכול להיות שיש לכם אפליקציה שעוקבת אחרי הזמנות של לקוחות. נציג תמיכה שואל באפליקציה: "מה הסטטוס של ההזמנה של לקוח מספר 12345?" בתרחיש הזה, האפליקציה יכולה להשתמש בתצוגה מאובטחת עם פרמטרים, עם משתנה סשן שמבוסס על מזהה לקוח. התצוגה המאובטחת עם הפרמטרים משתמשת בשאילתה שמחזירה רק שורות שמקושרות למזהה הלקוח 12345 ושהגישה אליהן מותרת.
באמצעות תצוגות מאובטחות עם פרמטרים, אפשר להגביל את טווח השורות שזמינות למשתמשים ספציפיים באפליקציה. ההגדרה הזו מבטיחה את אבטחת הנתונים, בלי קשר לאופן שבו המשתמשים מנסחים את השאילתות שלהם.
אבטחת מידע
תצוגות מאובטחות עם פרמטרים מספקות למפתחי אפליקציות אבטחת נתונים ושליטה בגישה לשורות באמצעות השיטות הבאות:
- תצוגות מאובטחות עם פרמטרים ב-MySQL מספקות אבטחה ברמת השורה, כי הן מונעות העברה של ערכים משורות לפונקציות ולאופרטורים שנבחרו בזדון, עד שהתצוגה מסיימת את העבודה שלה.
פרמטרים של תצוגה עם שם מאפשרים תצוגה מוגבלת של מסד הנתונים עם פרמטרים של ערכים. הערכים מסופקים על ידי האפליקציה על סמך אבטחה ברמת האפליקציה, כמו אימות משתמשי קצה.
אכיפה של הגבלות נוספות על שאילתות שמאפשרות גישה לתצוגות עם פרמטרים, כדי למנוע מתקפות נגד בדיקות בריחה בתצוגות על סמך ערכי הפרמטרים שצוינו. מידע נוסף זמין במאמר בנושא הגבלות על שאילתות.
ניהול משתמשים פשוט יותר
בעזרת תצוגות מאובטחות עם פרמטרים, אתם יכולים להשתמש בתפקיד מסד נתונים יחיד כדי לשרת את כל משתמשי הקצה, במקום להשתמש בשיטות שעשויות לדרוש מכם ליצור משתמש או תפקיד נפרד במסד הנתונים לכל משתמש קצה. השיטה הזו עוזרת לפשט את ניהול המשתמשים והחיבורים באפליקציות שבהן כל משתמש קצה צריך גישה רק לנתונים שלו.
לדוגמה, באפליקציה שבה משתמש צריך לראות רק את ההזמנות של לקוח מסוים, אפשר להגדיר תצוגה מאובטחת אחת עם פרמטרים שמוגדרים לפי מזהה משתמש הקצה. התצוגה הזו מאפשרת לתפקיד יחיד במסד הנתונים – עם גישה לתצוגה, לא לטבלה הבסיסית – לשרת את כל המשתמשים, וכך מפשטת את ניהול המשתמשים ואת החיבורים למסד הנתונים.
מגבלות
תצוגות מאובטחות עם פרמטרים נתמכות רק ב-Cloud SQL ל-MySQL מגרסה 8.0.43 ואילך. אם תנסו ליצור תצוגה מאובטחת עם פרמטרים בגרסה קודמת של MySQL, Cloud SQL יחזיר שגיאה.
אי אפשר לציין משתנים מחוץ לסעיפים
WHERE,HAVINGאוON.אי אפשר להשתמש ב-
EXPLAINבתצוגה מאובטחת עם פרמטרים.
- יש הגבלות כשמריצים שאילתות על תצוגות מאובטחות עם פרמטרים. מידע נוסף מופיע במאמר בנושא הגבלות על שאילתות.