במאמר הזה נסביר על ביקורת של מסדי נתונים ב-Cloud SQL ל-MySQL ועל הפלאגין של ביקורת ב-Cloud SQL ל-MySQL. כדי להשתמש בביקורת של מסד הנתונים, קראו את המאמר שימוש בביקורת של מסד נתונים ב-MySQL.
מהי ביקורת של מסד נתונים?
ביקורת מסד נתונים מאפשרת לכם לעקוב אחרי פעולות ספציפיות של משתמשים במסד הנתונים, כמו עדכוני טבלאות, שאילתות קריאה, הענקת הרשאות למשתמשים ועוד. ביקורת מסדי נתונים שימושית לארגונים שצריכים לתעד את פעילות המשתמשים מסיבות אבטחה או כדי לעמוד בתקנות שונות של משרדי ממשלה, מוסדות פיננסיים וארגון ISO. אפשר לבצע ביקורת על מסדי נתונים ב-Cloud SQL ל-MySQL בגרסאות 5.7, 8.0 ו-8.4.
פלאגין הביקורת של Cloud SQL ל-MySQL
כדי להפעיל ביקורת על מסד הנתונים, משתמשים בפלאגין הביקורת של Cloud SQL ל-MySQL או ב-cloudsql_mysql_audit. הפלאגין הזה משתמש ב-MySQL audit API הפתוח כדי לעקוב אחרי הפעילות ב-MySQL ולתעד אותה ביומן. הפלאגין שולח יומנים אל יומני ביקורת של Cloud Logging בנושא בקרת הרשאות גישה לנתונים.
יומני הביקורת של בקרת הרשאות גישה לנתונים מושבתים כברירת מחדל, כי הם יכולים להיות גדולים למדי. כדי להשתמש בפלאגין, צריך להפעיל את היומנים באופן מפורש.
כשהפלאגין פעיל, כללי הביקורת הקיימים שיצרתם מיושמים כדי ליצור יומני ביקורת למסד הנתונים. כשהפלאגין מושבת, לא נוצרים יומני ביקורת.
מידע נוסף על פלאגינים של MySQL זמין במאמר פלאגינים של שרת MySQL.
מי משתמש בביקורת מסדי נתונים?
יש שלושה סוגים של משתמשים שמעורבים בביקורת של מסד הנתונים:
- אדמינים – משתמשים שמנהלים את מסד הנתונים. אדמינים הם משתמשי ביקורת שאחראים להפעיל ולהשבית את הביקורת במכונה וליצור משתמשים חדשים. הם גם מעניקים הרשאות ביקורת למבקרים. אדמינים יכולים גם ליצור, למחוק ולעדכן כללי ביקורת.
- ניהול כללים לביקורת – משתמשים שיש להם הרשאה ליצור, למחוק ולעדכן את כללי הביקורת. האדמינים נותנים להם גישה.
- לקוחות – משתמשים שהפעילות שלהם מבוקרת באמצעות כללי הביקורת, אבל הם לא משתמשי ביקורת ואין להם הרשאות ניהול או ביקורת בעצמם. הגישה שלהם כפופה לאדמינים.
אדמינים ומשתמשים עם הרשאת ביקורת נקראים גם משתמשי ביקורת.
כללי ביקורת
בביקורת של מסדי נתונים משתמשים בכללי ביקורת כדי להגדיר שילובים של משתמשים, מסדי נתונים, אובייקטים, פעולות וסטטוסים שצריכים להפעיל את היצירה של יומן ביקורת. כלל ביקורת מכיל את הפרטים הבאים:
- מזהה – מזהה הכלל שנוצר באופן אוטומטי. לכל כלל ביקורת יש מזהה ביקורת שמוקצה לו באופן אוטומטי כשהכלל נוצר. אי אפשר לשנות את מזהה הביקורת אחרי שיוצרים אותו.
- שם משתמש – רשימה מופרדת בפסיקים של משתמשים או תבניות של תווים כלליים לחיפוש.
אפשר להשתמש בכוכביות (
*) כתווים כלליים לחיפוש גם למשתמש וגם למארח. אפשר להשתמש בכוכבית כסיומת, כקידומת או גם וגם. בנוסף, המשתמשים יכולים להשתמש בתו הכללי לחיפוש % רק למארח. האורך המקסימלי הוא 2,048 תווים. - Dbname – רשימה מופרדת בפסיקים של שמות מסדי נתונים או תבניות של תווים כלליים לחיפוש. אפשר להשתמש בכוכביות (
*) כתווים כלליים לחיפוש גם למשתמש וגם למארח. אפשר להשתמש בכוכבית כסיומת, כקידומת או גם וגם. האורך המקסימלי הוא 2,048 תווים. - Object: רשימה מופרדת בפסיקים של שמות של אובייקטים במסד הנתונים (טבלאות, פונקציות, פרוצדורות מאוחסנות וכו') או תבניות של תווים כלליים לחיפוש. אפשר להשתמש בכוכביות (
*) כתווים כלליים לחיפוש גם למשתמש וגם למארח. אפשר להשתמש בכוכבית כסיומת, כקידומת או גם וגם. האורך המקסימלי הוא 2,048 תווים. - Operation – רשימה מופרדת בפסיקים של פעולות במסד הנתונים. הפלאגין תומך בפעולות קבוצתיות (כמו DDL, DML וכו'), בפעולות בודדות (כמו עדכון, מחיקה וכו') ובתווים כלליים לחיפוש (
*) לכל הפעולות. רשימה מלאה של הפעולות הנתמכות הפלאגין תומך גם בקבוצות של פעולות, שמאפשרות לבדוק קבוצה של פעולות. האורך המקסימלי הוא 2,048 תווים. Op_result – תוצאת הפעולה.
-
Sלביקורת של פעולות שהצליחו Uלביקורת על פעולות שנכשלו-
Bלמעקב אחרי פעולות שהצליחו ופעולות שנכשלו -
Eליצירת כללים להחרגה
-
סוגי פעולות
סוגי פעולות הם סוגים שונים של פעילויות או פעולות שאפשר לבדוק במסד הנתונים:
-
DQL– קריאת נתונים ממסד הנתונים (כלומר, הצהרותSELECT) DML– הוספה, מחיקה או שינוי של נתוניםDDL– יצירה או שינוי של המבנה של אובייקטים במסד הנתונים-
DCL– ניהול הרשאות למשתמשים במסד הנתונים Show– תיאור של התנגדויות למסד הנתונים או ציון הסטטוס של מסד הנתוניםCall– הפעלת תהליך מאוחסן
שיקולים שמשפיעים על הרישום ביומן הביקורת
גיבויים
כשמשחזרים מכונה מגיבוי או משחזור מערכת מנקודה מסוימת בזמן (PITR), גם כללי הביקורת חוזרים למצב שהיה בזמן הגיבוי או ה-PITR. זה קורה כי כללי הביקורת הם חלק מהנתונים שמאוחסנים במסד הנתונים, כמו גם היעדים (המשתמשים והאובייקטים) שהכלל מבצע עליהם ביקורת.
עותקים לקריאה בלבד
כללי הביקורת משוכפלים באופן אוטומטי ממכונה ראשית לעותקים שלה לקריאה בלבד. הלקוחות לא יכולים להוסיף, להסיר או לשנות כללי ביקורת ברפליקות לקריאה בלבד. כדי לשנות את כללי הביקורת של רפליקה, צריך לעדכן את כללי הביקורת של המכונה הראשית.
אם מעדכנים את הכללים של יומן הביקורת במכונה הראשית, צריך לטעון מחדש את כלל הביקורת ברפליקה כדי לוודא שכללי הביקורת החדשים מעודכנים גם ברפליקות לקריאה בלבד. הפקודה הבאה טוענת מחדש את כלל הביקורת:
CALL mysql.cloudsql_reload_audit_rule(1)
המשתמשים יכולים להפעיל רישום ביומן ביקורת ברפליקות בנפרד מהמכונה הראשית. אחרי שמבצעים שינויים במכונה הראשית, צריך להריץ את פקודת הטעינה מחדש או להפעיל מחדש את מכונת הרפליקה כדי שכללי יומן הביקורת ייכנסו לתוקף.
זמינות מסד הנתונים בזמן כשל ביומן הביקורת
אם פעולת הביקורת נכשלת, Cloud SQL לא מפסיק את פעילות מסד הנתונים. לדוגמה, כשנגמר המקום בכונן של המכונה ו-Cloud SQL לא יכול ליצור יומן ביקורת, מסד הנתונים עדיין מאפשר למשתמש לבצע שאילתות קריאה, גם אם הפעילות הזו בדרך כלל יוצרת יומן ביקורת.
מכונות לקריאה בלבד
אם הדגל read_only של מכונה מוגדר לערך true, אי אפשר להוסיף או לעדכן כללי ביקורת כי הם מאוחסנים בטבלאות. כדי ליצור, לעדכן או למחוק כללים, צריך להסיר את הדגל read_only.
מגבלות ובעיות ידועות
קצב הטמעת היומנים
לפני ש-Cloud SQL שולח יומני ביקורת ל-Cloud Logging, הם נכתבים באופן זמני בדיסק של המכונה, תוך שימוש במקום בכונן. היומנים מועלים ל-Cloud Logging ומוסרים מהדיסק בקצב של 4MB לשנייה. כשהעומס מיצירת היומנים חורג מקצב ההעלאה, השימוש בדיסק של המכונה גדל, מה שעלול לגרום למסד הנתונים לקרוס בגלל מחסור במקום בדיסק. גם אם הפעלתם הגדלה אוטומטית של נפח האחסון בדיסק, העלייה בשימוש בדיסק מגדילה את העלויות.
כשאתם משתמשים בתכונה הזו, מומלץ:
- הפעלת הגדלות אוטומטיות של נפח האחסון
- עוקבים אחרי השימוש הכולל בדיסק. אי אפשר לעקוב בנפרד אחרי העומס שנוצר כתוצאה מיצירת היומנים. משתמשים במדד cloudsql.googleapis.com/database/disk/utilization ב-Metrics explorer.
- במקרה הצורך, אפשר להפחית את קצב יצירת היומנים על ידי הגבלת הפעילות במסד הנתונים או צמצום הביקורת.
בדיקת פעולות שנכשלו
אם כללי הביקורת כוללים ביקורת על פעולות שנכשלו (הערך של op_result מוגדר כ-U לפעולות שנכשלו או כ-B לפעולות שנכשלו וגם לפעולות שהצליחו), יכול להיות שחלק מהמשתמשים יוכלו להעמיס על מכונות מסד הנתונים יומני ביקורת על ידי ביצוע רציף של פעולות שנכשלו. אם קצב יצירת היומנים גבוה מקצב הטמעת היומנים, יכול להיות שהשימוש בדיסק יגדל באופן לא רצוי ויגרום לניצול יתר של המקום בדיסק. במקום זאת, כשמבצעים ביקורת על פעולות שנכשלו:
- שליטה בגישה ברמת המכונה.
- הגדירו מערכת מעקב או התראות על עלייה חריגה ביומני הפעולות שנכשלו.
כללי ביקורת
בכל מכונה של מסד נתונים אפשר ליצור עד 1,000 שילובים של כללי ביקורת. שילוב של כללי ביקורת הוא קבוצה ייחודית של משתמש, מסד נתונים, אובייקט ופעולות. לדוגמה, כלל ביקורת שבודק את user1,user2, db1,db2, table1,table2 ו-select,delete יוצר 2 x 2 x 2 x 2 = 16 שילובים.
אם המספר הכולל של שילובי כללי הביקורת גדול מ-1,000, אי אפשר ליצור או לעדכן כללי ביקורת.
פעולות לא נתמכות
בשלב הזה, הפעולות הבאות לא נתמכות.
הפונקציות הבאות לא נתמכות כשהן משמשות באופן שמתואר:
- בתוך שאילתות
SELECTעםUNION,INTERSECT, הסעיףWHERE, שאילתות בתצוגת עץ, שאילתות משנה וכו'. - במשפטים
UPDATE,DELETE,INSERT,REPLACE.
לדוגמה, אם יש לכם כלל ביקורת לאובייקט
func1, לא תתבצע ביקורת על:SELECT func1() FROM table;SELECT * FROM table WHERE a = func1();SELECT func1() != 0;SELECT func1() > 0;SET @x = func1();
פונקציה שנקראת ישירות על ידי
SELECTללא אופרטורים וללא משפטWHEREעוברת ביקורת:SELECT func1();SELECT db.func1();
- בתוך שאילתות
בשלב הזה אין תמיכה בסינון לפי כתובת IP.