חיבור לקוח של SQL Server באמצעות קובץ אימג' של Docker של שרת proxy ל-Cloud SQL Auth

בדף הזה מוסבר איך לחבר לקוח sqlcmd למכונה של Cloud SQL, ממכונת לקוח שפועלת בה מערכת Linux או ממכונת Linux של Compute Engine, באמצעות קובץ אימג' של Docker ל-Cloud SQL Auth Proxy.

לפני שמתחילים

אתם צריכים:

חיבור לקוח sqlcmd באמצעות תמונת Docker של שרת proxy ל-Cloud SQL Auth

כדי להתחבר באמצעות קובץ אימג' של Docker ל-Cloud SQL Auth Proxy:

  1. מפעילים את Cloud SQL Admin API, אם הוא עדיין לא מופעל.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  2. אם משתמשים במכונה של Compute Engine, צריך להכין את המכונה:
    1. הצגת המאפיינים של מכונת Compute Engine:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. בודקים את היקפי ההרשאות שמופעלים במכונה.

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

      • https://www.googleapis.com/auth/sqlservice.admin
      • https://www.googleapis.com/auth/devstorage.read_write

      לחלופין, היקף ההרשאות https://www.googleapis.com/auth/cloud-platform מאפשר גישה לכל ממשקי ה-API של Google Cloud Platform.

      אם למופע של Compute Engine אין את ההיקפים המתאימים, אפשר לעדכן את המופע כך שיכלול אותם. מידע נוסף זמין ב מאמרי העזרה של Compute Engine.

    3. פותחים חיבור טרמינל למכונה, לפי ההוראות במאמר התחברות למכונות Linux.
  3. אם הוא עדיין לא מותקן, מתקינים את לקוח sqlcmd במכונה של Compute Engine או במכונת הלקוח.
  4. אם צריך, מתקינים את לקוח Docker:
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER

    אם אתם משתמשים במכונה של Compute Engine ש מותאמת לקונטיינרים, כבר מותקן בה לקוח Docker.

  5. מתקינים את קובץ האימג' של Docker של Cloud SQL Auth Proxy מ-Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
  6. אם אתם מריצים את קובץ האימג' של Docker ל-Cloud SQL Auth Proxy במכונה מקומית (לא במכונה של Compute Engine), או אם למכונה של Compute Engine אין את ההיקפים המתאימים, אתם צריכים ליצור חשבון שירות ב-Google Cloud Platform.
    1. נכנסים לדף Service accounts במסוף Google Cloud .

      כניסה לדף Service accounts

    2. בוחרים את הפרויקט שמכיל את המכונה של Cloud SQL.
    3. לוחצים על יצירת חשבון שירות.
    4. בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
    5. משנים את הערך של Service account ID לערך ייחודי וקל לזיהוי, ולוחצים על Create and continue.
    6. לוחצים על השדה בחירת תפקיד ובוחרים אחד מהתפקידים הבאים:
      • Cloud SQL > Cloud SQL Client
      • Cloud SQL > Cloud SQL Editor
      • ‫Cloud SQL > Cloud SQL Admin
    7. לוחצים על Done כדי לסיים ליצור את חשבון השירות.
    8. לוחצים על תפריט הפעולות של חשבון השירות החדש ובוחרים באפשרות Manage keys.
    9. לוחצים על התפריט הנפתח Add key ואז על Create new key.
    10. מוודאים שסוג המפתח הוא JSON ולוחצים על Create.

      קובץ המפתח הפרטי יורד למחשב. אפשר להעביר אותו למיקום אחר. שומרים על אבטחת קובץ המַפְתח.

    כשמפעילים את Cloud SQL Auth Proxy, מספקים את הנתיב לקובץ המפתח בתור "PATH_TO_KEY_FILE".

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

    כניסה לדף Cloud SQL Instances

  8. בוחרים את המכונה כדי לפתוח את הדף Instance details ומעתיקים את הערך של Instance connection name.

    לדוגמה: myproject:us-central1:myinstance.

  9. מפעילים את Cloud SQL Auth Proxy.

    שקעי TCP

    docker run -d 
    -v PATH_TO_KEY_FILE:/path/to/service-account-key.json
    -p 127.0.0.1:1433:1433
    gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
    --address 0.0.0.0 --port 1433
    --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME

    אם אתם משתמשים בפרטי הכניסה שסופקו על ידי המכונה של Compute Engine, אל תכללו את הפרמטר --credentials-file ואת השורה -v PATH_TO_KEY_FILE:/path/to/service-account-key.json.

    תמיד צריך לציין את הקידומת 127.0.0.1 ב--p כדי ש-Cloud SQL Auth Proxy לא ייחשף מחוץ למארח המקומי. כדי שהיציאה תהיה נגישה מחוץ למאגר Docker, צריך להשתמש בדגל --address 0.0.0.0.

  10. מפעילים את הלקוח:

    מחרוזת החיבור שבה משתמשים תלויה בשיטה שבה הפעלתם את Cloud SQL Auth Proxy: באמצעות שקע TCP או Docker.

    שקעי TCP

    1. מפעילים את הלקוח sqlcmd:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD

      כשמתחברים באמצעות שקעי TCP, הגישה ל-Cloud SQL Auth Proxy מתבצעת דרך 127.0.0.1.

    2. אם מתבקשים, מזינים את הסיסמה.
    3. מופיעה ההנחיה sqlcmd.
יש לך שאלה או בעיה? לקבלת עזרה בפתרון בעיות ב-Cloud SQL Auth Proxy, אפשר לעיין במאמר פתרון בעיות בחיבורים של Cloud SQL Auth Proxy או בדף התמיכה ב-Cloud SQL.

עדכון קובץ האימג' של Cloud SQL Auth Proxy ב-Docker

קובץ האימג' של Cloud SQL Auth Proxy ב-Docker מבוסס על גרסה ספציפית של Cloud SQL Auth Proxy. כשגרסה חדשה של Cloud SQL Auth Proxy זמינה, צריך למשוך את הגרסה החדשה של קובץ אימג' של Docker של Cloud SQL Auth Proxy כדי לשמור על סביבה עדכנית. כדי לראות את הגרסה הנוכחית של Cloud SQL Auth Proxy, אפשר לעיין ב דף הגרסאות של Cloud SQL Auth Proxy ב-GitHub.

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