בדף הזה מוסבר איך לחבר לקוח sqlcmd למכונה של Cloud SQL ממכונת לקוח שמופעלת באמצעות Linux או מכונת Linux של Compute Engine, באמצעות קובץ אימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth.
לפני שמתחילים
אתם צריכים:
- התקנתם את ה-CLI של gcloud. מידע נוסף
- נתתם הרשאה ל-CLI של gcloud. מידע נוסף
- מגדירים את פרויקט ברירת המחדל ל-CLI של gcloud. מידע נוסף
- הגדרתם משתמש של מסד נתונים במכונה של Cloud SQL. מידע נוסף
חיבור לקוח sqlcmd באמצעות קובץ אימג' של Docker של שרת proxy ל-Cloud SQL Auth
כדי להתחבר באמצעות קובץ אימג' של Docker של שרת proxy ל-Cloud SQL Auth:
-
Enable the Cloud SQL Admin API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - אם משתמשים במכונה של 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.21.1
- אם אתם מריצים את קובץ האימג' של Docker של Cloud SQL Auth Proxy במחשב מקומי (לא במכונה של Compute Engine), או אם למכונה של Compute Engine אין את ההיקפים המתאימים, אתם צריכים ליצור חשבון שירות ב-Google Cloud Platform.
- נכנסים לדף Service accounts במסוף Google Cloud .
- בוחרים את הפרויקט שמכיל את מופע Cloud SQL.
- לוחצים על יצירת חשבון שירות.
- בשדה Service account name, מזינים שם תיאורי לחשבון השירות.
- משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה והמשך.
-
לוחצים על השדה בחירת תפקיד ובוחרים באחד מהתפקידים הבאים:
- 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.21.1 \ --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.21.1 // --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, מתבצעת גישה לשרת ה-proxy ל-Cloud SQL Auth דרך
127.0.0.1. - אם מופיעה בקשה, מזינים את הסיסמה.
- מופיעה שורת הפקודה של sqlcmd.
- מפעילים את לקוח sqlcmd:
שמירה על עדכניות של קובץ אימג' של Docker של שרת proxy ל-Cloud SQL Auth
קובץ האימג' של Docker של שרת proxy ל-Cloud SQL Auth מבוסס על גרסה ספציפית של שרת proxy ל-Cloud SQL Auth. כשגרסה חדשה של שרת ה-proxy ל-Cloud SQL Auth זמינה, צריך למשוך את הגרסה החדשה של קובץ אימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth כדי לשמור על הסביבה מעודכנת. כדי לראות את הגרסה הנוכחית של שרת ה-proxy ל-Cloud SQL Auth, אפשר לעיין ב דף הגרסאות של שרת ה-proxy ל-Cloud SQL Auth ב-GitHub.
המאמרים הבאים
- מידע נוסף על שרת proxy ל-Cloud SQL Auth
- קבלת עזרה בפתרון בעיות בחיבור לשרת proxy ל-Cloud SQL Auth.
- יוצרים משתמשים ומסדי נתונים.
- אפשרויות לחיבור המכונה לאפליקציה
- מידע על Docker
- מידע על Google Container Registry
- מידע על אפשרויות התמיכה