בדף הזה מוסבר איך לחבר לקוח sqlcmd למכונה של Cloud SQL, ממכונת לקוח שפועלת בה מערכת Linux או ממכונת Linux של Compute Engine, באמצעות קובץ אימג' של Docker ל-Cloud SQL Auth Proxy.
לפני שמתחילים
אתם צריכים:
- התקנתם את ה-CLI של gcloud. מידע נוסף
- נתתם הרשאה ל-CLI של gcloud. מידע נוסף
- מגדירים את פרויקט ברירת המחדל ל-CLI של gcloud. מידע נוסף
- הגדרתם משתמש במסד הנתונים במכונה של Cloud SQL. מידע נוסף
חיבור לקוח sqlcmd באמצעות תמונת Docker של שרת proxy ל-Cloud SQL Auth
כדי להתחבר באמצעות קובץ אימג' של Docker ל-Cloud SQL Auth Proxy:
מפעילים את Cloud SQL Admin API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים- אם משתמשים במכונה של Compute Engine, צריך להכין את המכונה:
-
הצגת המאפיינים של מכונת Compute Engine:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- בודקים את היקפי ההרשאות שמופעלים במכונה.
כדי לאמת באמצעות היקפי הרשאות, צריך את שני היקפי ההרשאות הבאים:
https://www.googleapis.com/auth/sqlservice.adminhttps://www.googleapis.com/auth/devstorage.read_write
לחלופין, היקף ההרשאות
https://www.googleapis.com/auth/cloud-platformמאפשר גישה לכל ממשקי ה-API של Google Cloud Platform.אם למופע של Compute Engine אין את ההיקפים המתאימים, אפשר לעדכן את המופע כך שיכלול אותם. מידע נוסף זמין ב מאמרי העזרה של Compute Engine.
- פותחים חיבור טרמינל למכונה, לפי ההוראות במאמר התחברות למכונות Linux.
-
הצגת המאפיינים של מכונת Compute Engine:
-
אם הוא עדיין לא מותקן, מתקינים את לקוח sqlcmd במכונה של Compute Engine או במכונת הלקוח.
Debian/Ubuntu
ב-Debian וב-Ubuntu, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
CentOS/RHEL
ב-CentOS/RHEL, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
openSUSE
ב-openSUSE, מתקינים את כלי שורת הפקודה הרלוונטיים של SQL Server.
פלטפורמות אחרות
ב דף הנחיתה להתקנת SQL Server וב דף ההורדות של SQL Server מפורט מידע נוסף.
-
אם צריך, מתקינים את לקוח Docker:
curl https://get.docker.com | sh sudo usermod -aG docker $USER
אם אתם משתמשים במכונה של Compute Engine ש מותאמת לקונטיינרים, כבר מותקן בה לקוח Docker.
-
מתקינים את קובץ האימג' של Docker של Cloud SQL Auth Proxy מ-Google Container Registry.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
- אם אתם מריצים את קובץ האימג' של Docker ל-Cloud SQL Auth Proxy במכונה מקומית (לא במכונה של Compute Engine), או אם למכונה של Compute Engine אין את ההיקפים המתאימים, אתם צריכים ליצור חשבון שירות ב-Google Cloud Platform.
- נכנסים לדף Service accounts במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את המכונה של Cloud SQL.
- לוחצים על יצירת חשבון שירות.
- בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
- משנים את הערך של Service account ID לערך ייחודי וקל לזיהוי, ולוחצים על Create and continue.
-
לוחצים על השדה בחירת תפקיד ובוחרים אחד מהתפקידים הבאים:
- Cloud SQL > Cloud SQL Client
- Cloud SQL > Cloud SQL Editor
- Cloud SQL > Cloud SQL Admin
- לוחצים על Done כדי לסיים ליצור את חשבון השירות.
- לוחצים על תפריט הפעולות של חשבון השירות החדש ובוחרים באפשרות Manage keys.
- לוחצים על התפריט הנפתח Add key ואז על Create new key.
-
מוודאים שסוג המפתח הוא JSON ולוחצים על Create.
קובץ המפתח הפרטי יורד למחשב. אפשר להעביר אותו למיקום אחר. שומרים על אבטחת קובץ המַפְתח.
כשמפעילים את Cloud SQL Auth Proxy, מספקים את הנתיב לקובץ המפתח בתור "PATH_TO_KEY_FILE".
- נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
-
בוחרים את המכונה כדי לפתוח את הדף Instance details ומעתיקים את הערך של Instance connection name.
לדוגמה:
myproject:us-central1:myinstance. -
מפעילים את 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. - מפעילים את הלקוח:
מחרוזת החיבור שבה משתמשים תלויה בשיטה שבה הפעלתם את Cloud SQL Auth Proxy: באמצעות שקע TCP או Docker.
שקעי TCP
- מפעילים את הלקוח sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
כשמתחברים באמצעות שקעי TCP, הגישה ל-Cloud SQL Auth Proxy מתבצעת דרך
127.0.0.1. - אם מתבקשים, מזינים את הסיסמה.
- מופיעה ההנחיה sqlcmd.
- מפעילים את הלקוח sqlcmd:
עדכון קובץ האימג' של 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.