בדף הזה מוסבר איך לחבר לקוח sqlcmd למכונה של Cloud SQL, ממכונת לקוח שמופעלת באמצעות Linux או מכונה של Compute Engine Linux, באמצעות קובץ אימג' של 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). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (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.25.4
- אם אתם מריצים את קובץ האימג' של Docker של Cloud SQL Auth Proxy במחשב מקומי (לא במכונה של Compute Engine), או אם למכונה של Compute Engine אין את ההיקפים המתאימים, צריך ליצור חשבון שירות ב-Google Cloud Platform.
- נכנסים לדף Service accounts במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את מכונת Cloud SQL.
- לוחצים על יצירת חשבון שירות.
- בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
- משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה והמשך.
-
לוחצים על השדה Select a role (בחירת תפקיד) ובוחרים באחד מהתפקידים הבאים:
- Cloud SQL > Cloud SQL Client
- Cloud SQL > Cloud SQL Editor
- Cloud SQL > Cloud SQL Admin
- לוחצים על Done כדי לסיים ליצור את חשבון השירות.
- לוחצים על תפריט הפעולות של חשבון השירות החדש ובוחרים באפשרות ניהול מפתחות.
- לוחצים על התפריט הנפתח Add key ואז על Create new key.
-
מוודאים שסוג המפתח הוא JSON ולוחצים על Create.
קובץ המפתח הפרטי יורד למחשב שלכם. אפשר להעביר אותו למיקום אחר. חשוב לשמור על קובץ המפתח מאובטח.
כשמפעילים את Cloud SQL Auth Proxy, מציינים את הנתיב לקובץ המפתח כ-PATH_TO_KEY_FILE.
- נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
-
בוחרים את המופע כדי לפתוח את הדף פרטי המופע ומעתיקים את שם החיבור של המופע.
לדוגמה:
myproject:us-central1:myinstance. -
מפעילים את שרת ה-proxy ל-Cloud SQL Auth.
בהתאם לשפה ולסביבה שלכם, אתם יכולים להפעיל את שרת ה-proxy ל-Cloud SQL Auth באמצעות שקעי TCP או שקעי Unix. אין תמיכה בשקעי Unix באפליקציות שנכתבו בשפת התכנות Java או בסביבת Windows.
שקעי 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.25.4 \ --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 כדי ששרת ה-proxy ל-Cloud SQL Auth לא ייחשף מחוץ למארח המקומי. הערך '0.0.0.0' בפרמטר instances נדרש כדי שהיציאה תהיה נגישה מחוץ לקונטיינר Docker.שקעי Unix
docker run -d -v /cloudsql:/cloudsql \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.25.4 // --unix-socket=/cloudsql \ --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.אם אתם משתמשים בקובץ אימג' שעבר אופטימיזציה לקונטיינר, צריך להשתמש בספרייה שאפשר לכתוב בה במקום
/cloudsql, לדוגמה:-v /mnt/stateful_partition/cloudsql:/cloudsql
אפשר לציין יותר ממופע אחד, ולהפריד ביניהם באמצעות פסיקים. אפשר גם להשתמש במטא-נתונים של Compute Engine כדי לקבוע באופן דינמי את המכונות להתחבר אליהן. מידע נוסף על פרמטרים של שרת proxy
- מפעילים את הלקוח:
מחרוזת החיבור שבה משתמשים תלויה בשיטה שבה הפעלתם את שרת ה-proxy ל-Cloud SQL Auth: באמצעות שקע 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:
שמירה על עדכניות של קובץ אימג' של Docker של Cloud SQL Auth Proxy
קובץ האימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth מבוסס על גרסה ספציפית של שרת ה-proxy ל-Cloud SQL Auth. כשגרסה חדשה של שרת ה-proxy ל-Cloud SQL Auth זמינה, צריך למשוך את הגרסה החדשה של קובץ האימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth כדי לשמור על עדכניות הסביבה. כדי לראות את הגרסה הנוכחית של Cloud SQL Auth Proxy, אפשר לעיין ב דף הגרסאות של Cloud SQL Auth Proxy ב-GitHub.
המאמרים הבאים
- מידע נוסף על שרת proxy ל-Cloud SQL Auth
- פתרון בעיות בחיבור לשרת proxy ל-Cloud SQL Auth.
- יוצרים משתמשים ומסדי נתונים.
- אפשרויות לחיבור המכונה מהאפליקציה
- מידע נוסף על Docker
- מידע על Google Container Registry
- מידע על אפשרויות התמיכה