ניהול משתמשים באמצעות אימות מובנה

בדף הזה מוסבר איך להפעיל את האימות המובנה של Cloud SQL ואיך להשתמש בו.

סקירה כללית זמינה במאמר אימות מובנה של מסדי נתונים ב-Cloud SQL.

לפני שיוצרים משתמשים

  1. יוצרים מכונה של Cloud SQL. מידע נוסף מופיע במאמר יצירת מופעים.
  2. מפעילים מדיניות סיסמאות למופע. מידע נוסף זמין במאמר מדיניות סיסמאות של מופעים.
  3. אם אתם מתכננים להשתמש בלקוח האדמין של מסד הנתונים כדי לנהל משתמשים, אתם צריכים לבצע את הפעולות הבאות:

    1. מחברים את הלקוח למופע. אפשרויות חיבור לאפליקציות חיצוניות

    2. מגדירים את המשתמש שמוגדר כברירת מחדל במופע על ידי הגדרת הסיסמה. איך מגדירים את הסיסמה לחשבון המשתמש שמוגדר כברירת מחדל

הגדרת הסיסמה לחשבון המשתמש שמוגדר כברירת מחדל

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

ב-Cloud SQL ל-MySQL, משתמש ברירת המחדל הוא root@%. המשמעות היא משתמש במסד נתונים עם שם משתמש root שיכול להתחבר מכל מארח (@%).

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות משתמשים.
  4. מוצאים את המשתמש root ולוחצים על שינוי הסיסמה בתפריט האפשרויות הנוספות סמל האפשרויות הנוספות..

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

  5. מזינים סיסמה חזקה שקל לזכור ולוחצים על אישור.

gcloud

משתמשים בפקודה gcloud sql users set-password כדי להגדיר את הסיסמה למשתמש ברירת המחדל.

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

gcloud sql users set-password root \
--host=% \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

כדי לעדכן את הסיסמה של חשבון המשתמש שמוגדר כברירת מחדל, משתמשים בבקשת PUT עם השיטה users:update.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה הרצוי
  • password: הסיסמה של המשתמש

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25

תוכן בקשת JSON:

{
  "name": "root",
  "password": "password"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

כדי לעדכן את הסיסמה של חשבון המשתמש שמוגדר כברירת מחדל, משתמשים בבקשת PUT עם השיטה users:update.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה הרצוי
  • password: הסיסמה של המשתמש

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=root&host=%25

תוכן בקשת JSON:

{
  "name": "root",
  "password": "password"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

יצירת משתמש

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

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

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

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות משתמשים.
  4. לוחצים על הוספת חשבון משתמש.

    בדף Add a user account to instance instance_name, אפשר לבחור אם המשתמש יאומת באמצעות שיטת מסד הנתונים המובנית (שם משתמש וסיסמה) או כמשתמש IAM.

  5. בוחרים באפשרות אימות מובנה (ברירת המחדל) ומוסיפים את הפרטים הבאים:
    • שם משתמש.
    • זה שינוי אופציונלי. סיסמה. צריך להזין סיסמה חזקה שקל לזכור.
    • זה שינוי אופציונלי. מדיניות הסיסמאות של המשתמש.
    • בקטע שם המארח, ברירת המחדל היא אפשר להשתמש בכל מארח, מה שאומר שהמשתמש יכול להתחבר מכל כתובת IP. אופציונלית, בוחרים באפשרות Restrict host by IP address or address range ומזינים כתובת IP או טווח כתובות בקטע Host. אחרי כן, המשתמש יוכל להתחבר רק מכתובת ה-IP או מכתובות ה-IP שצוינו.
  6. לוחצים על הוספה.

אם יוצרים משתמש שמשתמש באימות מובנה במכונה עם MySQL 8.0 או גרסה מאוחרת יותר, ולא מציינים תפקידים במסד הנתונים, למשתמש מוקצה אוטומטית התפקיד cloudsqlsuperuser. מידע נוסף על ההרשאות שמשויכות לתפקיד cloudsqlsuperuser זמין במאמרים הרשאות משתמש ב-MySQL 8.0‏ (cloudsqlsuperuser) והרשאות משתמש ב-MySQL 8.4‏ (cloudsqlsuperuser). אם רוצים לשנות את ההרשאות של המשתמש, צריך להקצות לו תפקיד או תפקידים מותאמים אישית של MySQL כשיוצרים אותו ב-Cloud SQL. אם מקצים תפקיד אחד או יותר של מסד נתונים בהתאמה אישית כשיוצרים את המשתמש ב-Cloud SQL, למשתמש לא מוקצה התפקיד cloudsqlsuperuser.

אם יוצרים משתמש שמשתמש באימות מובנה במופע MySQL 5.7, המשתמש מקבל אוטומטית את כל ההרשאות חוץ מההרשאות FILE ו-SUPER. אם צריך לשנות את ההרשאות של המשתמש, משתמשים בפקודה GRANT או REVOKE בלקוח mysql.

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

gcloud

כדי ליצור משתמש, משתמשים בפקודה gcloud sql users create.

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%).
  • INSTANCE_NAME: השם של המכונה.
  • PASSWORD: הסיסמה של המשתמש.
  • ROLE_1, ROLE_2 ..., ROLE_N: אופציונלי. התפקיד או התפקידים במסד הנתונים שרוצים להקצות למשתמש.
gcloud sql users create USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--password=PASSWORD \
--database-roles=ROLE_1, ROLE_2, ..., ROLE_N

אם יוצרים משתמש שמשתמש באימות מובנה במכונה עם MySQL 8.0 או גרסה מאוחרת יותר, ולא מציינים תפקידים במסד הנתונים, למשתמש מוקצה אוטומטית התפקיד cloudsqlsuperuser. מידע נוסף על ההרשאות שמשויכות לתפקיד cloudsqlsuperuser זמין במאמרים הרשאות משתמש ב-MySQL 8.0‏ (cloudsqlsuperuser) והרשאות משתמש ב-MySQL 8.4‏ (cloudsqlsuperuser). אם רוצים לשנות את ההרשאות של המשתמש, צריך להקצות לו תפקיד או תפקידים מותאמים אישית של MySQL כשיוצרים אותו ב-Cloud SQL. אם מקצים תפקיד אחד או יותר של מסד נתונים בהתאמה אישית כשיוצרים את המשתמש ב-Cloud SQL, למשתמש לא מוקצה התפקיד cloudsqlsuperuser.

אם יוצרים משתמש שמשתמש באימות מובנה במופע MySQL 5.7, המשתמש מקבל אוטומטית את כל ההרשאות חוץ מההרשאות FILE ו-SUPER. אם צריך לשנות את ההרשאות של המשתמש, משתמשים בפקודה GRANT או REVOKE בלקוח mysql.

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

מגבלות האורך של שמות המשתמשים ב-Cloud SQL זהות לאלה של MySQL מקומי: 32 תווים ב-MySQL 8.0 ואילך, ו-16 תווים בגרסאות קודמות.

כשיוצרים משתמש, אפשר להוסיף פרמטרים של מדיניות סיסמאות למשתמשים.

Terraform

כדי ליצור משתמש, משתמשים במשאב של Terraform.

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.default.name
  password = random_password.pwd.result
}

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

resource "google_sql_user" "builtin_user" {
  name     = "test-user1"
  password = "password"
  instance = google_sql_database_instance.default.name
  # Specify the list of database roles to be granted to the user
  # The database roles must exist in the database.
  database_roles = ["cloudsqlsuperuser"]
}

החלה של השינויים

כדי להחיל את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

מחיקת השינויים

כדי למחוק את השינויים:

  1. כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט deletion_protection לערך false.
    deletion_protection =  "false"
  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:
    terraform apply
  1. כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

    terraform destroy

REST v1

כדי ליצור משתמש, משתמשים בבקשת POST עם השיטה users:insert.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • USER_ID: מזהה המשתמש
  • PASSWORD: הסיסמה של המשתמש
  • HOST: שם המארח של המשתמש
  • ROLE_1, ROLE_2 ..., ROLE_N: אופציונלי. התפקיד או התפקידים במסד הנתונים שיוקצו למשתמש

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "host": "HOST",
  "databaseRoles": [
    "ROLE_1",
    "ROLE_2"
  ]
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

אם יוצרים משתמש שמשתמש באימות מובנה במכונה עם MySQL 8.0 או גרסה מאוחרת יותר, ולא מציינים תפקידים במסד הנתונים, למשתמש מוקצה אוטומטית התפקיד cloudsqlsuperuser. מידע נוסף על ההרשאות שמשויכות לתפקיד cloudsqlsuperuser זמין במאמרים הרשאות משתמש ב-MySQL 8.0‏ (cloudsqlsuperuser) והרשאות משתמש ב-MySQL 8.4‏ (cloudsqlsuperuser). אם רוצים לשנות את ההרשאות של המשתמש, צריך להקצות לו תפקיד או תפקידים מותאמים אישית של MySQL כשיוצרים אותו ב-Cloud SQL. אם מקצים תפקיד אחד או יותר של מסד נתונים בהתאמה אישית כשיוצרים את המשתמש ב-Cloud SQL, למשתמש לא מוקצה התפקיד cloudsqlsuperuser.

אם יוצרים משתמש שמשתמש באימות מובנה במופע MySQL 5.7, המשתמש מקבל אוטומטית את כל ההרשאות חוץ מההרשאות FILE ו-SUPER. אם צריך לשנות את ההרשאות של המשתמש, משתמשים בפקודה GRANT או REVOKE בלקוח mysql.

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

מגבלות האורך של שמות המשתמשים ב-Cloud SQL זהות לאלה של MySQL מקומי: 32 תווים ב-MySQL 8.0 ואילך, ו-16 תווים בגרסאות קודמות.

כשיוצרים משתמש, אפשר להוסיף פרמטרים של מדיניות סיסמאות למשתמשים.

REST v1beta4

כדי ליצור משתמש, משתמשים בבקשת POST עם השיטה users:insert.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • USER_ID: מזהה המשתמש
  • PASSWORD: הסיסמה של המשתמש
  • HOST: שם המארח של המשתמש
  • ROLE_1, ROLE_2 ..., ROLE_N: אופציונלי. התפקיד או התפקידים במסד הנתונים שיוקצו למשתמש

ה-method של ה-HTTP וכתובת ה-URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "host": "HOST",
  "databaseRoles": [
    "ROLE_1",
    "ROLE_2"
  ]
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

אם יוצרים משתמש שמשתמש באימות מובנה במכונה עם MySQL 8.0 או גרסה מאוחרת יותר, ולא מציינים תפקידים במסד הנתונים, למשתמש מוקצה אוטומטית התפקיד cloudsqlsuperuser. מידע נוסף על ההרשאות שמשויכות לתפקיד cloudsqlsuperuser זמין במאמרים הרשאות משתמש ב-MySQL 8.0‏ (cloudsqlsuperuser) והרשאות משתמש ב-MySQL 8.4‏ (cloudsqlsuperuser). אם רוצים לשנות את ההרשאות של המשתמש, צריך להקצות לו תפקיד או תפקידים מותאמים אישית של MySQL כשיוצרים אותו ב-Cloud SQL. אם מקצים תפקיד אחד או יותר של מסד נתונים בהתאמה אישית כשיוצרים את המשתמש ב-Cloud SQL, למשתמש לא מוקצה התפקיד cloudsqlsuperuser.

אם יוצרים משתמש שמשתמש באימות מובנה במופע MySQL 5.7, המשתמש מקבל אוטומטית את כל ההרשאות חוץ מההרשאות FILE ו-SUPER. אם צריך לשנות את ההרשאות של המשתמש, משתמשים בפקודה GRANT או REVOKE בלקוח mysql.

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

מגבלות האורך של שמות המשתמשים ב-Cloud SQL זהות לאלה של MySQL מקומי: 32 תווים ב-MySQL 8.0 ואילך, ו-16 תווים בגרסאות קודמות.

כשיוצרים משתמש, אפשר להוסיף פרמטרים של מדיניות סיסמאות למשתמשים.

לקוח mysql

  1. כדי ליצור משתמש, בשורת הפקודה mysql, משתמשים בהצהרת CREATE USER הבאה:
      CREATE USER 'USER_NAME'@'%'
         IDENTIFIED BY 'PASSWORD';
      

    אפשר להוסיף פרמטרים של מדיניות סיסמאות למשתמשים.

  2. כדי לוודא שהמשתמש נוצר, אפשר להציג את טבלת המשתמשים:
    SELECT user, host FROM mysql.user;
    בדוגמה הבאה אפשר לראות איך נראה הפלט של מופע מהדור השני:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. נותנים למשתמש הרשאות באמצעות ההצהרה GRANT. מידע נוסף זמין במאמר בנושא הרשאות שניתנות על ידי MySQL.
  4. מרוקנים את הטבלה mysql.user כדי לוודא שהשינוי יישמר:
      FLUSH TABLES mysql.user;

הגדרת מדיניות סיסמאות למשתמשים

אתם יכולים להגדיר מדיניות סיסמאות באמצעות סוג האימות המובנה.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות משתמשים.
  4. לוחצים על סמל האפשרויות הנוספות סמל האפשרויות הנוספות. לצד המשתמש שרוצים לשנות את המדיניות שלו.
  5. לוחצים על עריכת מדיניות הסיסמאות.
  6. בקטע מדיניות הסיסמאות, בוחרים אחת או יותר מהאפשרויות הבאות:
    • הגדרת תוקף הסיסמה: מציינת את מספר הימים שאחריהם תוקף הסיסמה יפוג והמשתמש יצטרך ליצור סיסמה חדשה.
    • נעילה אחרי ניסיונות כושלים: מציינת את מספר הפעמים שמשתמש יכול לנסות להזין את הסיסמה בצורה שגויה לפני שהחשבון ננעל.

      האפשרות נתמכת רק ב-Cloud SQL ל-MySQL 8.0 ומעלה.

    • דרישה לסיסמה הנוכחית כשמשנים את הסיסמה: מחייבת את המשתמשים להזין את הסיסמה הקיימת שלהם כשהם מנסים לשנות אותה.

gcloud

כדי להגדיר את מדיניות הסיסמאות של המשתמש, משתמשים בפקודה gcloud sql users set-password-policy.

משתמשים ב--password-policy-enable-password-verification כדי לחייב את המשתמשים להזין את הסיסמה הקיימת שלהם כשהם מנסים לשנות את הסיסמה. כדי להשבית את הפרמטר הזה, משתמשים בערך --no-password-policy-enable-password-verification.

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • INSTANCE_NAME: השם של המכונה.
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%).
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: אופציונלי: מספר הפעמים שמשתמש יכול לנסות להזין את הסיסמה בצורה שגויה לפני שהחשבון ננעל. משתמשים ב---password-policy-enable-failed-attempts-check כדי להפעיל את הבדיקה וב---no-password-policy-enable-failed-attempts-check כדי להשבית אותה.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION: אופציונלי: מציינים את מספר הימים שאחריהם תוקף הסיסמה יפוג והמשתמש יצטרך ליצור סיסמה חדשה.
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--password-policy-enable-failed-attempts-check \
--password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \
--password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION \
--password-policy-enable-password-verification

כדי להסיר מדיניות סיסמאות של משתמש, משתמשים בפרמטר --clear-password-policy.

gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

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

REST v1

כדי להגדיר מדיניות סיסמאות למשתמשים, משתמשים בבקשת PUT עם ה-method ‏ users:update.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • USER_ID: מזהה המשתמש
  • PASSWORD: הסיסמה של המשתמש
  • FAILED_ATTEMPTS_CHECK: מוגדר ל-true כדי להפעיל בדיקה של מספר הניסיונות הכושלים להיכנס לחשבון, שאחריהם החשבון ננעל
  • NUMBER_OF_ATTEMPTS: מספר הניסיונות הכושלים להתחבר שאחריהם החשבון ננעל
  • PASSWORD_EXPIRATION_DURATION: מספר הימים שאחריהם הסיסמה פגה והמשתמש צריך ליצור סיסמה חדשה
  • VERIFY_PASSWORD: צריך להגדיר את הערך true כדי לחייב את המשתמשים להזין את הסיסמה הקיימת שלהם כשהם מנסים לשנות את הסיסמה

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

REST v1beta4

כדי להגדיר מדיניות סיסמאות למשתמשים, משתמשים בבקשת PUT עם ה-method ‏ users:update.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • USER_ID: מזהה המשתמש
  • PASSWORD: הסיסמה של המשתמש
  • FAILED_ATTEMPTS_CHECK: מוגדר ל-true כדי להפעיל בדיקה של מספר הניסיונות הכושלים להיכנס לחשבון, שאחריהם החשבון ננעל
  • NUMBER_OF_ATTEMPTS: מספר הניסיונות הכושלים להתחבר שאחריהם החשבון ננעל
  • PASSWORD_EXPIRATION_DURATION: מספר הימים שאחריהם הסיסמה פגה והמשתמש צריך ליצור סיסמה חדשה
  • VERIFY_PASSWORD: צריך להגדיר את הערך true כדי לחייב את המשתמשים להזין את הסיסמה הקיימת שלהם כשהם מנסים לשנות את הסיסמה

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

לקוח mysql

כדי להגדיר מדיניות סיסמאות למשתמש, משתמשים בהצהרת ALTER USER הבאה בהנחיית mysql:

ALTER USER USER_NAME
    FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS
    PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY
    PASSWORD REQUIRE CURRENT;

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • ALLOWED_FAILED_ATTEMPTS: אופציונלי: מספר הפעמים שמשתמש יכול לנסות להזין את הסיסמה בצורה שגויה לפני שהחשבון ננעל.
  • PASSWORD_EXPIRATION_DURATION: אופציונלי: מציינים את מספר הימים שאחריהם תוקף הסיסמה יפוג והמשתמש יצטרך ליצור סיסמה חדשה.

משתמשים באפשרות PASSWORD REQUIRE CURRENT כדי לחייב את המשתמשים להזין את הסיסמה הקיימת שלהם כשהם מנסים לשנות את הסיסמה.

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

הצגת רשימת משתמשים

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות משתמשים.

    ברשימה מוצגים User name,‏ Host name וסוג Authentication של כל משתמש.

    בנוסף, לסוג האימות המובנה מצוין גם הערך Password status.

gcloud

כדי להציג את רשימת המשתמשים של המופע הזה, משתמשים בפקודה gcloud sql users list:

gcloud sql users list \
--instance=INSTANCE_NAME

הפקודה מחזירה את Name, Host ואת Type של כל משתמש.

בנוסף, עבור סוג האימות המובנה, מוחזרות ההגדרות והסטטוס של מדיניות הסיסמאות. לדוגמה:

    NAME    HOST    TYPE        PASSWORD_POLICY
    user1           BUILT_IN    {'allowedFailedAttempts': 2,
                                 'enableFailedAttemptsCheck': True,
                                 'passwordExpirationDuration': '7d',
                                 'status': {
                                   'locked': True,
                                   'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
                                 }
                                }
   

REST v1

כדי להציג רשימה של המשתמשים שהוגדרו למופע, משתמשים בבקשת GET עם השיטה users:list.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה הרצוי

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

אם הוגדרה מדיניות סיסמאות למשתמשים, הקטע items בתשובה כולל את הקטע passwordPolicy. בדוגמת הקוד הבאה מוצג הקטע passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

REST v1beta4

כדי להציג רשימה של המשתמשים שהוגדרו למופע, משתמשים בבקשת GET עם השיטה users:list.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה הרצוי

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

אם הוגדרה מדיניות סיסמאות למשתמשים, הקטע items בתשובה כולל את הקטע passwordPolicy. בדוגמת הקוד הבאה מוצג הקטע passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

לקוח mysql

כדי להציג רשימה של משתמשי MySQL, בשורת הפקודה mysql משתמשים בהצהרת SELECT הבאה:

SELECT user, host FROM mysql.user;

בדוגמה הבאה מוצג פלט של מכונה מדור שני שמוגדר בה רק חשבון המשתמש root:

+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
+------+-----------+
1 row in set (0.01 sec)

בדוגמה הזו מוצגים המשתמשים של מופע עם המשתמש root. המשתמש הזה יכול להתחבר מכל מארח (%). בשדה הסיסמה מוצג הגיבוב של הסיסמה.

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

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

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

במאמר שימוש בתפקידים מוסבר איך ליצור תפקיד ב-MySQL.

אי אפשר להקצות תפקידים לאף אחד ממשתמשי המערכת של MySQL במופע.

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

gcloud

כדי להקצות תפקידים למשתמש, משתמשים בפקודה gcloud sql users assign-roles.

gcloud sql users assign-roles USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--type=BUILT-IN \
--database-roles=ROLE_1, ROLE_2, ..., ROLE_N

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%).
  • INSTANCE_NAME: השם של המכונה.
  • ROLE_1, ROLE_2, ..., ROLE_N: התפקיד או התפקידים במסד הנתונים שיוקצו למשתמש.

REST v1

כדי לעדכן משתמש, משתמשים בבקשת PUT עם השיטה users:update.

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה הרצוי
  • USER_ID: מזהה המשתמש
  • ROLE_1, ‏ ROLE_2 ..., ‏ ROLE_N: התפקיד או התפקידים במסד הנתונים שרוצים להקצות למשתמש

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ]
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

כדי לעדכן משתמש, משתמשים בבקשת PUT עם השיטה users:update.

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה הרצוי
  • USER_ID: מזהה המשתמש
  • ROLE_1, ‏ROLE_2, ‏..., ‏ROLE_N: התפקיד או התפקידים במסד הנתונים שרוצים להקצות למשתמש

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ]
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

החלפת תפקידי מסד נתונים של משתמש קיים

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

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

gcloud

כדי להחליף את תפקידי מסד הנתונים של משתמש, מבטלים את התפקידים הקיימים של המשתמש ומקצים תפקידים חדשים. כדי להחליף את התפקידים במסד הנתונים של משתמש, משתמשים בפקודה gcloud sql users assign-roles הבאה.

gcloud sql users assign-roles USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--database-roles=ROLE_1,ROLE_2 \
--revoke-existing-roles

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%).
  • INSTANCE_NAME: השם של המכונה.
  • ROLE_1, ROLE_2: תפקיד או תפקידים חדשים במסד הנתונים שיוקצו למשתמש.

אפשר גם לבטל את התפקידים הקיימים של משתמש ולהקצות לו אפס תפקידים. לדוגמה:

gcloud sql users assign-roles USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--database-roles= \
--revoke-existing-roles

REST v1

כדי לעדכן משתמש, משתמשים בבקשת PUT עם השיטה users:update.

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה הרצוי
  • USER_ID: מזהה המשתמש
  • ROLE_1, ‏ROLE_2 ..., ‏ROLE_N: התפקיד או התפקידים החדשים במסד הנתונים שרוצים להקצות למשתמש. אפשר גם לציין רשימה ריקה.

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ],
  "revokeExistingRoles": true
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

כדי לעדכן משתמש, משתמשים בבקשת PUT עם השיטה users:update.

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

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה הרצוי
  • USER_ID: מזהה המשתמש
  • ROLE_1, ‏ROLE_2, ‏..., ‏ROLE_N: התפקיד או התפקידים החדשים במסד הנתונים שיוקצו למשתמש. אפשר גם לציין רשימה ריקה.

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ],
  "revokeExistingRoles": true
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

שינוי סיסמה של משתמש

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

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות משתמשים.
  4. לוחצים על סמל האפשרויות הנוספות סמל האפשרויות הנוספות. ליד המשתמש שרוצים לעדכן.
  5. בוחרים באפשרות שינוי הסיסמה.
  6. מציינים סיסמה חדשה.

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

  7. לוחצים על OK.

gcloud

משתמשים בפקודה gcloud sql users set-password כדי לשנות סיסמה.

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%).
  • INSTANCE_NAME: השם של המכונה.
  • PASSWORD: סיסמה. הסיסמה צריכה לעמוד בדרישות של מדיניות הסיסמאות, אם היא מוגדרת.

אופציונלי, ב-MySQL מגרסה 8.0 ואילך, אפשר להמשיך לאפשר למשתמש להשתמש בסיסמה הישנה יותר באמצעות האפשרות --retain-password. כדי לבטל את הסיסמה הישנה, משתמשים באפשרות --discard-dual-password.

gcloud sql users set-password USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--password=PASSWORD

REST v1

כדי לשנות סיסמה של משתמש, משתמשים בבקשת PUT עם השיטה users:update.

הבקשה הבאה מעדכנת את הסיסמה של חשבון המשתמש user_name'@'%. אם למשתמש יש מארח אחר, צריך לשנות את הקריאה עם המארח הנכון.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה הרצוי
  • user-id: מזהה המשתמש
  • password: הסיסמה החדשה של המשתמש
  • dual-password: אחד מהערכים הבאים של enum:
    • DUAL_PASSWORD: המשתמש יכול להמשיך להשתמש בסיסמה הישנה.
    • NO_DUAL_PASSWORD: המשתמש לא יכול להשתמש בסיסמה הישנה.
    • NO_MODIFY_DUAL_PASSWORD: הסטטוס של הסיסמה הכפולה לא משתנה.

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

תוכן בקשת JSON:

{
  "name": "user-id",
  "password": "password",
  "retainedPassword" : "dual-password"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

כדי לשנות סיסמה של משתמש, משתמשים בבקשת PUT עם השיטה users:update.

הבקשה הבאה מעדכנת את הסיסמה של חשבון המשתמש user_name'@'%. אם למשתמש יש מארח אחר, צריך לשנות את הקריאה עם המארח הנכון.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • project-id: מזהה הפרויקט
  • instance-id: מזהה המכונה הרצוי
  • user-id: מזהה המשתמש
  • password: הסיסמה החדשה של המשתמש
  • dual-password: אחד מהערכים הבאים של enum:
    • DUAL_PASSWORD: המשתמש יכול להמשיך להשתמש בסיסמה הישנה.
    • NO_DUAL_PASSWORD: המשתמש לא יכול להשתמש בסיסמה הישנה.
    • NO_MODIFY_DUAL_PASSWORD: הסטטוס של הסיסמה הכפולה לא משתנה.

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

תוכן בקשת JSON:

{
  "name": "user-id",
  "password": "password",
  "retainedPassword" : "dual-password"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

לקוח mysql

  1. כדי לשנות את הסיסמה, בהנחיה mysql, משתמשים בהצהרה הבאה SET PASSWORD:
    SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
  2. מבצעים Flush לטבלה mysql.user כדי לוודא שהשינוי יישמר:
    FLUSH TABLES mysql.user;

אם משתמש ננעל בגלל הגדרות מדיניות הסיסמאות, צריך לשנות את הסיסמה כדי לבטל את הנעילה. מוודאים שהסיסמאות, כשהן משתנות, עומדות במדיניות הסיסמאות.

הסרה של מדיניות סיסמאות למשתמשים

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

gcloud

כדי להסיר את מדיניות הסיסמאות של המשתמש, משתמשים בפקודה gcloud sql users set-password-policy ובפרמטר --clear-password-policy.

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש
  • INSTANCE_NAME: השם של המכונה
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%)
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST v1

כדי להסיר מדיניות סיסמאות של משתמש, משתמשים בבקשת PUT עם השיטה users:update.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • USER_ID: מזהה המשתמש
  • PASSWORD: הסיסמה של המשתמש

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

כדי להסיר מדיניות סיסמאות של משתמש, משתמשים בבקשת PUT עם השיטה users:update.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה
  • USER_ID: מזהה המשתמש
  • PASSWORD: הסיסמה של המשתמש

ה-method של ה-HTTP וכתובת ה-URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

תוכן בקשת JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

הסרת משתמש

משתמש ברירת המחדל יכול להסיר משתמשים.

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

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות משתמשים.
  4. לוחצים על סמל האפשרויות הנוספות סמל האפשרויות הנוספות. ליד המשתמש שרוצים להסיר.
  5. לוחצים על הסרה ואז שוב על הסרה.

gcloud

כדי להסיר משתמש, משתמשים בפקודה gcloud sql users delete.

מחליפים את מה שכתוב בשדות הבאים:

  • USER_NAME: שם המשתמש.
  • HOST: שם המארח של המשתמש ככתובת IP ספציפית, כטווח כתובות או כמארח כלשהו (%).
  • INSTANCE_NAME: השם של המכונה.
gcloud sql users delete USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME

REST v1

בדוגמה הבאה נעשה שימוש בשיטה users:delete כדי למחוק את חשבון המשתמש שצוין.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה הרצוי
  • USERNAME: כתובת האימייל של המשתמש או של חשבון השירות

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

בדוגמה הבאה נעשה שימוש בשיטה users:delete כדי למחוק את חשבון המשתמש שצוין.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • INSTANCE_ID: מזהה המכונה הרצוי
  • USERNAME: כתובת האימייל של המשתמש או של חשבון השירות

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

לקוח mysql

  1. כדי למחוק משתמש, משתמשים בהצהרה הבאה DROP USER בהנחיה mysql:
    DROP USER 'USER_NAME'@'HOST_NAME';
  2. מרוקנים את הטבלה mysql.user כדי לוודא שהשינוי יישמר:
    FLUSH TABLES mysql.user;

עדכון מאפייני משתמש

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

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