בדף הזה מוסבר איך Cloud SQL עובד עם משתמשי MySQL. חשבונות משתמשים ב-MySQL מספקים אבטחה על ידי שליטה בגישה למסדי נתונים של MySQL.
למסמכי תיעוד מלאים על משתמשים ב-MySQL, אפשר לעיין במאמר בנושא בקרת גישה וניהול חשבונות במסמכי התיעוד של MySQL. מידע על יצירה וניהול של משתמשי Cloud SQL ב-Cloud SQL זמין במאמר יצירה וניהול של משתמשים.
למה צריך חשבונות משתמשים ב-MySQL
חשבונות משתמשים ב-MySQL מאפשרים לכם להתחבר למכונה של Cloud SQL ולנהל אותה. חשבונות משתמשים נדרשים גם כדי שלאפליקציות תהיה גישה למופע שלכם.
הגבלות על משתמשי-על
ב-Cloud SQL לקוחות לא יכולים ליצור משתמשים עם מאפיינים של משתמש-על או לקבל גישה אליהם.
Cloud SQL ל-MySQL הוא שירות מנוהל ולכן הוא מגביל את הגישה להליכי מערכת ולטבלאות מסוימים.
הרשאות של שפת טיפול בנתונים (DML) ושפת הגדרת נתונים (DDL) מוגבלות בחלק מטבלאות הסכימה.
זו רשימת טבלאות המערכת של MySQL 5.6 בסכימה mysql שנדרשות להן הרשאות כתיבה:
audit_log_rules_expandedaudit_log_supported_opsaudit_log_rulescloudsql_replica_indexdbeventfuncheartbeatpluginprocusertables_priv
זו הרשימה של MySQL 5.7:
audit_log_rules_expandedaudit_log_supported_opsaudit_log_rulescloudsql_replica_indexdbeventfuncgtid_executedheartbeatpluginprocusertables_priv
מידע נוסף על MySQL 8.0 ו-MySQL 8.4 זמין במאמרים הרשאות משתמש ב-MySQL 8.0 (cloudsqlsuperuser) והרשאות משתמש ב-MySQL 8.4 (cloudsqlsuperuser).
הפורמט של חשבון משתמש ב-MySQL
לחשבונות משתמש ב-MySQL יש שני רכיבים: שם משתמש ושם מארח. שם המשתמש מזהה את המשתמש, ושם המארח מציין מאיזה מארחים המשתמש יכול להתחבר. שם המשתמש ושם המארח משולבים כדי ליצור חשבון משתמש:
'<user_name>'@'<host_name>'
אתם יכולים לציין כתובת IP ספציפית או טווח כתובות לשם המארח, או להשתמש בתו האחוז ("%") כדי לא להגביל את שם המארח. הערה: אם אתם מתחברים למופע באמצעות כתובות IP, אתם צריכים להוסיף את כתובת ה-IP של הלקוח ככתובת מורשית, גם אם שם המארח של המשתמש לא מוגבל.
חשבונות משתמשים מוגדרים על ידי שם המשתמש וגם על ידי שם המארח. לדוגמה, '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משמשת לניראות (observability) של מסד הנתונים.
cloudiamgroup@'%'משמש לאימות של קבוצת IAM.
cloudsqlreadonlyמשמש להרצת פעולות לקריאה בלבד בטבלאות מערכת.
cloudsqlreplicaindexמשמש לניהול אינדקסים משניים בעותקים.
אי אפשר למחוק, לשנות או להקצות תפקידים במסד הנתונים למשתמשים האלה.
חשבונות משתמשים אחרים ב-MySQL
אפשר גם ליצור חשבונות משתמשים אחרים ב-MySQL. זו שיטה מומלצת כי היא מאפשרת לכם להשתמש בחשבונות משתמש שונים ב-MySQL למטרות שונות.
אתם יכולים ליצור חשבון משתמש עם שם מארח מוגבל, או להשתמש בפקודות SQL כדי להגביל את ההרשאות בחשבונות המשתמשים.
מידע נוסף על שמות של חשבונות משתמשים זמין במאמר Specifying Account Names (ציון שמות של חשבונות) במסמכי העזרה של MySQL. כדי ליצור משתמש חדש ב-MySQL ב-Cloud SQL, אפשר לעיין במאמר בנושא יצירת משתמש.
הרשאות משתמשים ב-MySQL 5.6 וב-MySQL 5.7
MySQL מספק הרשאות מפורטות שאפשר להעניק או להסיר למשתמש. כך תוכלו לקבוע מה משתמש יכול לעשות במופע שלכם.
למשתמשים שנוצרו באמצעות Cloud SQL יש את אותן הרשאות כמו משתמש ברירת המחדל של MySQL. אפשר לשנות את ההרשאות שלהם באמצעות ההצהרות GRANT או REVOKE.
כשמשתמשים בלקוח mysql כדי ליצור משתמש, צריך להעניק למשתמש הזה הרשאות באופן מפורש באמצעות ההצהרה GRANT.
מידע נוסף על ההרשאות שנתמכות על ידי MySQL זמין במאמר Privileges Provided by 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
APPLICATION_PASSWORD_ADMINCONNECTION_ADMINROLE_ADMINSET_USER_IDXA_RECOVER_ADMINCLOUDSQL_SPECIAL_VARIABLES_ADMINFLUSH_OPTIMIZER_COSTSFLUSH_STATUSFLUSH_TABLESFLUSH_USER_RESOURCESINNODB_REDO_LOG_ENABLESHOW_ROUTINEAUTHENTICATION_POLICY_ADMINGROUP_REPLICATION_STREAMPASSWORDLESS_USER_ADMINAUDIT_ABORT_EXEMPT
MySQL 8.0.29 (הוצאה משימוש)
APPLICATION_PASSWORD_ADMINCONNECTION_ADMINROLE_ADMINSET_USER_IDXA_RECOVER_ADMINCLOUDSQL_SPECIAL_VARIABLES_ADMINFLUSH_OPTIMIZER_COSTSFLUSH_STATUSFLUSH_TABLESFLUSH_USER_RESOURCESINNODB_REDO_LOG_ENABLESHOW_ROUTINEAUTHENTICATION_POLICY_ADMINGROUP_REPLICATION_STREAMPASSWORDLESS_USER_ADMINAUDIT_ABORT_EXEMPTSENSITIVE_VARIABLES_OBSERVER
MySQL 8.0.30 ואילך
APPLICATION_PASSWORD_ADMINCONNECTION_ADMINROLE_ADMINSET_USER_IDXA_RECOVER_ADMINCLOUDSQL_SPECIAL_VARIABLES_ADMINFLUSH_OPTIMIZER_COSTSFLUSH_STATUSFLUSH_TABLESFLUSH_USER_RESOURCESINNODB_REDO_LOG_ENABLESHOW_ROUTINEAUTHENTICATION_POLICY_ADMINGROUP_REPLICATION_STREAMPASSWORDLESS_USER_ADMINAUDIT_ABORT_EXEMPTSENSITIVE_VARIABLES_OBSERVERFIREWALL_EXEMPT
תפקיד 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:
- מסיר את ההרשאה
SET_USER_IDומחליף אותה בהרשאות החדשותALLOW_NONEXISTENT_DEFINERוSET_ANY_DEFINER. - ההרשאה
FLUSH_PRIVILEGESהיא תת-קבוצה של ההרשאהRELOAD. ההרשאה הזו לא מחליפה את ההרשאהRELOAD, וההרשאהRELOADעדיין ניתנת לצורך תאימות לאחור. - מעניקה את ההרשאה החדשה
OPTIMIZE_LOCAL_TABLE.
בנוסף, ב-Cloud SQL ל-MySQL 8.4 לא מוענקות ההרשאות TRANSACTION_GTID_TAG או TELEMETRY_LOG_ADMIN שהוצגו ב-MySQL 8.4.
תפקידים ב-MySQL
אם אתם משתמשים ב-MySQL 8.0 ואילך, אתם יכולים ליצור תפקידים בהתאמה אישית כדי לארגן ולהקצות הרשאות למסד הנתונים למשתמשי MySQL. אתם יכולים להשתמש בתפקידים כדי לספק הרשאות ראשוניות למסד הנתונים למשתמשים כשאתם יוצרים מכונה של Cloud SQL.
מידע נוסף על יצירה ושימוש בתפקידים ב-MySQL זמין במאמר שימוש בתפקידים.
כשיוצרים משתמש מובנה ב-MySQL ב-Cloud SQL ל-MySQL ולא מקצים לו תפקידים במסד הנתונים, המשתמש המובנה ב-MySQL מקבל באופן אוטומטי את התפקיד cloudsqlsuperuser.
לחלופין, אפשר ליצור משתמש חדש ב-MySQL ולהקצות לו תפקיד או תפקידים אחרים בהתאמה אישית עם הרשאות מפורטות יותר.
מידע נוסף על הקצאת תפקידים למשתמשים ב-Cloud SQL ל-MySQL זמין במאמר ניהול משתמשים באמצעות אימות מובנה.
משתמשי IAM ותפקידים במסד הנתונים
כשיוצרים חשבון משתמש IAM ב-Cloud SQL ל-MySQL ולא מקצים לו תפקידים במסד הנתונים, המשתמש לא מקבל תפקידים במסד הנתונים באופן אוטומטי.
אפשר להקצות את התפקיד cloudsqlsuperuser ותפקידים בהתאמה אישית במסד הנתונים למשתמשים, לחשבונות שירות או לקבוצות ב-IAM. כדי לעשות זאת, מקצים את התפקידים האלה במסד הנתונים כשיוצרים או מעדכנים את החשבונות ב-IAM במופע.
מידע נוסף על הקצאת תפקידים למשתמשי IAM זמין במאמר הקצאת תפקידי מסד נתונים בזמן הוספת חשבון IAM למופע.
המאמרים הבאים
- מגדירים את חשבון המשתמש של
rootבמופע. - יצירה וניהול של משתמשים
- יצירה וניהול של מסדי נתונים
- אפשר לעיין בתיעוד של MySQL בנושא משתמשי MySQL.
- אפשר לעיין בתיעוד של MySQL בנושא הרשאות שניתנות על ידי MySQL.
- אפשרויות לחיבור למכונה