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

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

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

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

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

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

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

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

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

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

המסוף

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

    כניסה לדף Cloud SQL Instances

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

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

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

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 במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

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

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

  5. בוחרים באפשרות אימות מובנה (ברירת המחדל) ומוסיפים את הפרטים הבאים:
    • שם משתמש.
    • זה שינוי אופציונלי. סיסמה. מזינים סיסמה חזקה שתוכלו לזכור.
    • זה שינוי אופציונלי. מדיניות הסיסמאות של המשתמשים.
    • בקטע שם מארח, ברירת המחדל היא Allow any host, כלומר המשתמש יכול להתחבר מכל כתובת IP. אם רוצים, בוחרים באפשרות הגבלת המארח לפי כתובת IP או טווח כתובות ומזינים כתובת 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 בפרויקט ב- Google Cloud :

הכנת Cloud Shell

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

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

    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. פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-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. כדי ליצור משתמש, משתמשים בהצהרת CREATE USER הבאה בהנחיה mysql:
      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. מידע נוסף זמין במאמר Privileges Provided by MySQL.
  4. מנקים את הטבלה mysql.user כדי לוודא שהשינוי נשמר:
      FLUSH TABLES mysql.user;

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

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

המסוף

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

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, לוחצים על Users.
  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 במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

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

    ברשימה מוצגים הסוגים 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. המשתמש הזה יכול להתחבר מכל מארח (%). בשדה הסיסמה מוצג ה-hash של הסיסמה.

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

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

כדי להקצות תפקיד למשתמש ב-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: התפקיד או התפקידים במסד הנתונים שיוקצו למשתמש.
בשדה type, מציינים את הערך BUILT_IN כדי לייצג את סוג המשתמש ב-Cloud SQL. השדה הזה קובע את השיטה שבה משתמשים לאימות.

REST v1

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

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

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

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה הרצוי
  • ‫USER_ID: מזהה המשתמש
  • ‫ROLE_1, ROLE_2 ..., ROLE_N: התפקיד או התפקידים במסד הנתונים שיוקצו למשתמש
בשדה type, מציינים את הערך BUILT_IN כדי לייצג את סוג המשתמש ב-Cloud SQL. השדה הזה קובע את השיטה שבה משתמשים לאימות.

ה-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: התפקיד או התפקידים במסד הנתונים שיוקצו למשתמש
בשדה type, מציינים את הערך BUILT_IN כדי לייצג את סוג המשתמש ב-Cloud SQL. השדה הזה קובע את השיטה שבה משתמשים לאימות.

ה-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 \
--type=BUILT_IN \
--host=HOST \
--instance=INSTANCE_NAME \
--database-roles=ROLE_1,ROLE_2 \
--revoke-existing-roles

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

  • ‫USER_NAME: שם המשתמש.
  • ‫HOST: שם המארח של המשתמש ככתובת IP ספציפית, טווח כתובות או כל מארח (%).
  • ‫INSTANCE_NAME: שם המכונה.
  • ‫ROLE_1, ‏ROLE_2: התפקיד או התפקידים החדשים במסד הנתונים שיוקצו למשתמש.
בשדה type, מציינים את הערך BUILT_IN כדי לייצג את סוג המשתמש ב-Cloud SQL. השדה הזה קובע את השיטה שבה משתמשים לאימות.

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

gcloud sql users assign-roles USER_NAME \
--type=BUILT_IN \
--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 במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

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

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

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

gcloud

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

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

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

בגרסה 8.0 ומעלה של MySQL, אתם יכולים להמשיך לאפשר למשתמש להשתמש בסיסמה הישנה עם האפשרות --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

  • כדי לשנות את הסיסמה, משתמשים בהצהרה הבאה של SET PASSWORD בהנחיה של mysql:
    SET PASSWORD FOR USER_NAME = 'PASSWORD';
  • כדי לשנות את הסיסמה של חשבון משתמש אחר (לדוגמה, בתור המשתמש root), משתמשים בהצהרה הבאה של ALTER USER:

    ALTER USER 'USER_NAME'@'HOST' IDENTIFIED BY 'PASSWORD';
  • כדי לוודא שהשינויים שבוצעו נכתבו, מרוקנים את הטבלה 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 במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, לוחצים על Users.
  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.

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