בקרת גישה פרטנית לסנכרון שינויים בזרמי נתונים

בדף הזה מוסבר איך בקרת גישה מפורטת (FGAC) פועלת עם סנכרון שינויים בזרמי נתונים ב-Spanner, במסדי נתונים בניב GoogleSQL ובמסדי נתונים בניב PostgreSQL.

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

  • מעניקים את ההרשאה SELECT בסנכרון שינויים בזרמי נתונים.

    GoogleSQL

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE ROLE_NAME;

    PostgreSQL

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE_NAME;
  • נותנים את ההרשאה EXECUTE לפונקציית הקריאה שנוצרת באופן אוטומטי לסנכרון שינויים בזרמי נתונים. אתם משתמשים בפונקציית הקריאה כדי לקרוא רשומות של סנכרון שינויים בזרמי נתונים.

    GoogleSQL

    GRANT EXECUTE ON TABLE FUNCTION READ_FUNCTION_NAME TO ROLE ROLE_NAME;

    PostgreSQL

    GRANT EXECUTE ON FUNCTION READ_FUNCTION_NAME TO ROLE_NAME;

    בנושאים הבאים מוסבר על מוסכמות למתן שמות לפונקציות קריאה של סנכרון שינויים בזרמי נתונים, ועל הפורמט של המידע שהן מחזירות:

תצוגות של INFORMATION_SCHEMA לסנכרון שינויים בזרמי נתונים

בתצוגות הבאות מוצג מידע על הרשאות ותפקידים במסד הנתונים בשביל סנכרון שינויים בזרמי נתונים:

השורות בתצוגות האלה מסוננות לפי ההרשאות של תפקיד מסד הנתונים הנוכחי בשינויים בזרמי הנתונים. כך אפשר לוודא שחשבונות המשתמשים יוכלו לראות רק את התפקידים, ההרשאות וסנכרון השינויים בזרמי הנתונים שיש להם גישה אליהם.

סינון שורות חל גם על התצוגות הבאות שקשורות לסנכרון שינויים בזרמי נתונים:

GoogleSQL

תפקיד המערכת spanner_info_reader והחברים שלו תמיד רואים INFORMATION_SCHEMA לא מסונן.

PostgreSQL

התפקיד המערכתי spanner_info_reader והחברים שלו רואים information_schema לא מסונן.

סינון שורות חל גם על תצוגות המטא-נתונים הבאות של פונקציות קריאה של סנכרון שינויים בזרמי נתונים:

נקודות שצריך לשים לב אליהן

  • בסנכרון שינויים בזרמי נתונים נעשה שימוש במסד נתונים של מטא-נתונים כדי לשמור על המצב הפנימי. מסד הנתונים של המטא-נתונים יכול להיות זהה למסד הנתונים של האפליקציה או שונה ממנו. מומלץ להשתמש במסד נתונים אחר. עם זאת, למשתמשים עם בקרת גישה מפורטת, מסד הנתונים של המטא-נתונים לא יכול להיות זהה למסד הנתונים של האפליקציה. הסיבה לכך היא שהחשבון הראשי של ניהול הזהויות והרשאות הגישה (IAM) שמריץ את משימת Dataflow צריך גישת קריאה או כתיבה ברמת מסד הנתונים של המטא-נתונים. הפעולה הזו תעקוף את הרשאות בקרת הגישה הפרטנית שהוגדרו למסד הנתונים של האפליקציה.

    מידע נוסף זמין במאמר שימוש במסד נתונים נפרד למטא-נתונים.

  • סנכרון שינויים בזרמי נתונים מכיל עותק נפרד של הנתונים מהטבלאות ומהעמודות שבמעקב, לכן חשוב להיזהר כשנותנים למשתמשים גישה לסנכרון שינויים בזרמי נתונים. הקוראים של סנכרון השינויים בזרמי הנתונים יכולים לראות את השינויים בנתונים מהטבלאות ומהעמודות שבמעקב, גם אם אין להם הרשאות SELECT בטבלאות ובעמודות. למרות שגמיש יותר להגדיר אמצעי בקרה נפרדים על סנכרון שינויים בזרמי נתונים ועל הטבלאות והעמודות שאחריהן מתבצע מעקב, יש סיכון פוטנציאלי, ולכן חשוב לוודא שאתם מגדירים את התפקידים וההרשאות במסד הנתונים בהתאם. לדוגמה, כשמבטלים את ההרשאה SELECT בטבלה מתפקיד מסוים, כדאי לשקול אם לבטל גם את ההרשאה SELECT בסנכרון שינויים בזרמי נתונים ואת ההרשאה EXECUTE בפונקציית הקריאה המשויכת.

  • אם נותנים את ההרשאה SELECT בסנכרון שינויים בזרמי נתונים שעוקב אחרי כל הטבלאות, מקבל ההרשאה יכול לראות שינויים בנתונים בכל הטבלאות שיתווספו בעתיד.

המאמרים הבאים