מידע על משתמשי MySQL

בדף הזה מוסבר איך Cloud SQL פועל עם משתמשי MySQL. חשבונות משתמשים ב-MySQL מספקים אבטחה על ידי שליטה בגישה למסדי נתונים של MySQL.

לתיעוד מלא על משתמשים ב-MySQL, ראה בקרת גישה וניהול חשבונות בתיעוד של MySQL. במאמר יצירה וניהול של משתמשים מוסבר איך יוצרים ומנהלים משתמשים ב-Cloud SQL.

למה צריך חשבונות משתמשים ב-MySQL

חשבונות משתמשים ב-MySQL מאפשרים לכם להתחבר למכונה של Cloud SQL ולנהל אותה. חשבונות משתמשים נדרשים גם כדי שאפליקציות יוכלו לגשת למכונה שלכם.

הגבלות על משתמשי-על

ב-Cloud SQL לקוחות לא יכולים ליצור משתמשים עם מאפיינים של משתמש-על או לקבל גישה אליהם.

‫Cloud SQL ל-MySQL הוא שירות מנוהל, ולכן הוא מגביל את הגישה לטבלאות ולהליכי מערכת מסוימים.

הרשאות של שפת טיפול בנתונים (DML) ושפת הגדרת נתונים (DDL) מוגבלות בחלק מטבלאות הסכימה.

זו הרשימה של טבלאות המערכת של MySQL 5.6 בסכימה mysql שדורשות הרשאות כתיבה:

  • audit_log_rules_expanded
  • audit_log_supported_ops
  • audit_log_rules
  • cloudsql_replica_index
  • db
  • event
  • func
  • heartbeat
  • plugin
  • proc
  • user
  • tables_priv

זו הרשימה של MySQL 5.7:

  • audit_log_rules_expanded
  • audit_log_supported_ops
  • audit_log_rules
  • cloudsql_replica_index
  • db
  • event
  • func
  • gtid_executed
  • heartbeat
  • plugin
  • proc
  • user
  • tables_priv

למידע נוסף על MySQL 8.0 ו-MySQL 8.4, קראו את המאמרים הרשאות משתמש ב-MySQL 8.0‏ (cloudsqlsuperuser) והרשאות משתמש ב-MySQL 8.4‏ (cloudsqlsuperuser).

פורמט חשבון המשתמש ב-MySQL

לחשבונות משתמשים ב-MySQL יש שני רכיבים: שם משתמש ושם מארח. שם המשתמש מזהה את המשתמש, ושם המארח מציין מאילו מארחים המשתמש יכול להתחבר. שם המשתמש ושם המארח משולבים כדי ליצור חשבון משתמש:

'<user_name>'@'<host_name>'

אפשר לציין כתובת IP ספציפית או טווח כתובות לשם המארח, או להשתמש בתו האחוז ("%") כדי להשאיר את שם המארח ללא הגבלה.

אם אתם מתחברים למכונה באמצעות כתובת IP ציבורית, אתם צריכים להוסיף את כתובת ה-IP הציבורית של הלקוח ככתובת מורשית, גם אם שם המארח של המשתמש לא מוגבל.

אם אתם מתחברים למכונה באמצעות נקודת קצה של Private Service Connect, אתם לא יכולים להגביל חשבון משתמש לפי שם מארח או כתובת IP. נקודות הקצה של Private Service Connect משתמשות בתרגום כתובות רשת (NAT) כדי להמיר את כתובות ה-IP של הלקוחות לכתובות IP דינמיות מרשת משנה של NAT. מכיוון שהמכונה של Cloud SQL מקבלת חיבורים עם כתובות ה-IP המתורגמות הדינמיות האלה, ולא עם כתובת ה-IP או שם המארח המקוריים של הלקוח, המכונה דוחה את החיבור. אי אפשר לציין כתובת IP מתורגמת בחשבון המשתמש כי הכתובות המתורגמות הן דינמיות ומשתנות עם הזמן. במקום זאת, צריך להשתמש בתו האחוז ('%') כדי להשאיר את שם המארח ללא הגבלה, למשל 'USER_NAME'@'%'.

חשבונות משתמשים מוגדרים גם לפי שם המשתמש וגם לפי שם המארח. לדוגמה, 'user'@'%' הוא חשבון משתמש שונה מ-'user'@'localhost'.

משתמש MySQL שמוגדר כברירת מחדל

כשיוצרים מכונות MySQL, יש להן חשבון משתמש אחד כברירת מחדל: 'root'@'%'. אתם משתמשים בחשבון הזה כדי להתחבר למכונה של מסד הנתונים ולנהל אותה בפעם הראשונה. למשתמש שמוגדר כברירת מחדל יש את כל הרשאות מסד הנתונים, חוץ מ-SUPER ו-FILE. ב-Cloud SQL, אי אפשר לשנות את השם של 'root'@'%'.

כברירת מחדל, ל-root'@'% אין סיסמה, ו-MySQL לא דורש להשתמש בסיסמה ל-root'@'%. עם זאת, מכיוון ש-root'@'% קיים ברוב ההתקנות של MySQL, המשתמש root'@'% הוא יעד נפוץ לגישה לא מורשית. כל אדם או תוכנה שמקבלים גישה למכונה שלכם, מקבלים גישה כמעט בלתי מוגבלת למכונה ולנתונים שלכם, ויכולים לשלוט בהם. לכן, מומלץ להגדיר סיסמה חזקה למשתמש root'@'% או למחוק את המשתמש הזה. איך מגדירים את חשבון המשתמש שמוגדר כברירת מחדל

משתמשי מערכת

ב-Cloud SQL יש תמיכה במשתמשי המערכת הבאים:

  • root@localhost, root@127.0.0.1, root@::1

    משמשת כדי לספק את שירות מסד הנתונים המנוהל.

  • cloudsqlreplica@%

    משמש כמשתמש רפליקציה לרפליקות.

  • cloudsqlimport@localhost, cloudsqlimport@127.0.0.1

    משמש לייבוא נתונים.

  • cloudsqlexport@localhost, cloudsqlexport@127.0.0.1

    משמש לייצוא נתונים.

  • cloudsqloneshot

    משמש לפעולות אחרות במסד הנתונים.

  • cloudsqlapplier@localhost

    משמש לפעולות שכפול ברפליקה של שרת חיצוני או לשכפול בין גרסאות ראשיות.

  • cloudsqlobservabilityadmin

    משמש לתצפית על מסד הנתונים.

  • cloudiamgroup@'%'

    משמש לאימות של קבוצת IAM.

  • cloudsqlreadonly

    משמש לביצוע פעולות לקריאה בלבד בטבלאות המערכת.

  • cloudsqlreplicaindex

    משמש לניהול אינדקסים משניים ברפליקות.

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

חשבונות משתמש אחרים ב-MySQL

אפשר גם ליצור חשבונות משתמשים אחרים ב-MySQL. זו שיטה מומלצת כי היא מאפשרת להשתמש בחשבונות משתמשים שונים ב-MySQL למטרות שונות.

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

למידע נוסף על שמות של חשבונות משתמשים, קראו את המאמר ציון שמות של חשבונות במסמכי התיעוד של MySQL. כדי ליצור משתמש MySQL חדש ב-Cloud SQL, קראו את המאמר יצירת משתמש.

הרשאות משתמש ב-MySQL 5.6 ו-5.7

ב-MySQL יש הרשאות מפורטות שאפשר לתת למשתמש או להסיר ממנו. כך אתם יכולים לקבוע מה המשתמש יכול לעשות במכונה שלכם.

למשתמשים שנוצרו באמצעות Cloud SQL יש את אותן הרשאות כמו למשתמש ברירת המחדל של MySQL. אפשר לשנות את ההרשאות שלהם באמצעות ההצהרות GRANT או REVOKE.

כשמשתמשים בלקוח mysql כדי ליצור משתמש, צריך להעניק לו הרשאות באופן מפורש באמצעות ההצהרה GRANT.

מידע נוסף על ההרשאות שנתמכות על ידי MySQL זמין במאמר ההרשאות שניתנות על ידי MySQL.

הרשאות משתמש ב-MySQL 8.0‏ (cloudsqlsuperuser)

ב-Cloud SQL ל-MySQL 8.0, כשיוצרים משתמש חדש שמשתמש באימות מובנה, המשתמש מקבל באופן אוטומטי את התפקיד cloudsqlsuperuser. התפקיד cloudsqlsuperuser הוא תפקיד ב-Cloud SQL שמכיל כמה הרשאות MySQL. התפקיד הזה נותן למשתמש את כל ההרשאות הסטטיות של MySQL, חוץ מ-SUPER ו-FILE.

התפקיד cloudsqlsuperuser תומך רק בהרשאות הדינמיות הבאות, שמבוססות על גרסאות משניות של MySQL 8.0:

‫MySQL 8.0.18

‫MySQL 8.0.26

‫MySQL 8.0.27

‫MySQL 8.0.28

‫MySQL 8.0.29 (הוצא משימוש)

‫MySQL 8.0.30 ואילך

התפקיד cloudsqlsuperuser לא תומך בפעולות של שפת הגדרת נתונים (DDL) במסד הנתונים של המערכת mysql.

כדי לראות את הרשימה המלאה של ההרשאות שניתנו לתפקיד cloudsqlsuperuser, מריצים את ההצהרה SHOW GRANTS בלקוח mysql:

SHOW GRANTS FOR 'cloudsqlsuperuser'

הרשאות משתמש ב-MySQL 8.4‏ (cloudsqlsuperuser)

בדומה ל-Cloud SQL ל-MySQL 8.0, ב-Cloud SQL ל-MySQL 8.4, כשיוצרים משתמש חדש שמשתמש באימות מובנה, המשתמש מקבל באופן אוטומטי את התפקיד cloudsqlsuperuser.

ב-MySQL 8.4, לתפקיד cloudsqlsuperuser יש את אותן הרשאות כמו ב-MySQL 8.0.x. עם זאת, אלה ההבדלים העיקריים בין MySQL 8.4 ל-MySQL 8.0.x:

בנוסף, ב-Cloud SQL ל-MySQL 8.4 לא ניתנות ההרשאות TRANSACTION_GTID_TAG או TELEMETRY_LOG_ADMIN שהתווספו ב-MySQL 8.4.

הרשאות משתמש ב-MySQL 9.7‏ (cloudsqlsuperuser)

ב-Cloud SQL ל-MySQL 9.7, בדומה ל-Cloud SQL ל-MySQL 8.0 ול-Cloud SQL ל-MySQL 8.4, כשיוצרים משתמש חדש שמשתמש באימות מובנה, המשתמש מקבל באופן אוטומטי את התפקיד cloudsqlsuperuser.

ב-MySQL 9.7, לתפקיד cloudsqlsuperuser יש את אותן הרשאות כמו ב-MySQL 8.4. עם זאת, ב-MySQL 9.7 נוספה ההרשאה הבאה ל-cloudsqlsuperuser:

תפקידים ב-MySQL

אם אתם משתמשים ב-MySQL מגרסה 8.0 ואילך, אתם יכולים ליצור תפקידים בהתאמה אישית כדי לארגן ולהקצות הרשאות במסד הנתונים למשתמשי MySQL. כשיוצרים מכונה של Cloud SQL, אפשר להשתמש בתפקידים כדי לתת למשתמשים הרשאות ראשוניות למסד הנתונים.

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

כשיוצרים משתמש מובנה של MySQL ב-Cloud SQL ל-MySQL ולא מקצים לו תפקידים במסד הנתונים, המשתמש המובנה של MySQL מקבל באופן אוטומטי את התפקיד cloudsqlsuperuser. לחלופין, אתם יכולים ליצור משתמש MySQL חדש ולהקצות תפקיד או תפקידים שונים בהתאמה אישית עם הרשאות מפורטות יותר. למידע נוסף על הקצאת תפקידים למשתמשים ב-Cloud SQL ל-MySQL, קראו את המאמר ניהול משתמשים באמצעות אימות מובנה.

תפקידי חובה למשתמשי MySQL

ב-MySQL, תפקידי חובה הם תפקידים שרוצים להקצות לכל משתמש במסד הנתונים. עם זאת, התפקידים לא נכנסים לתוקף עד שהם מופעלים. כדי להפעיל תפקידי חובה, צריך להפעיל את הדגל activate_all_roles_on_login או את הדגל activate_mandatory_roles.

ב-Cloud SQL ל-MySQL 9.7, הדגל activate_mandatory_roles מוגדר כברירת מחדל ל-on.

מידע נוסף זמין במאמר הפעלת תפקידים.

משתמשי IAM ותפקידים במסד הנתונים

כשיוצרים חשבון משתמש ב-IAM ב-Cloud SQL ל-MySQL ולא מקצים לו תפקידים במסד הנתונים, המשתמש לא מקבל תפקידים במסד הנתונים באופן אוטומטי.

אתם יכולים להקצות את התפקיד cloudsqlsuperuser ותפקידים בהתאמה אישית במסד הנתונים למשתמשים, לחשבונות שירות או לקבוצות ב-IAM. כדי לעשות את זה, אתם צריכים להקצות את התפקידים האלה במסד הנתונים כשאתם יוצרים או מעדכנים את החשבונות ב-IAM במכונה.

מידע נוסף על הקצאת תפקידים למשתמשי IAM זמין במאמר הקצאת תפקידים במסד הנתונים בזמן הוספת חשבון IAM למכונה.

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