בדף הזה מוסבר איך לגשת למסד נתונים של Spanner כשאתם משתמשים בבקרת גישה ברמת גרנולריות גבוהה.
מידע על בקרת גישה פרטנית מופיע במאמר מידע על בקרת גישה פרטנית.
כמשתמש עם בקרת גישה פרטנית, אתם צריכים לבחור תפקיד במסד הנתונים כדי להריץ הצהרות ושאילתות של SQL, ולבצע פעולות על שורות במסד הנתונים. התפקיד שתבחרו יישאר לאורך כל הסשן, עד שתשנו אותו.
כששולחים שאילתה, DML או פעולה בשורה, Spanner בודק את ההרשאה באמצעות הכללים הבאים:
- מסוףGoogle Cloud
קודם כל, מערכת Spanner בודקת אם יש לכם הרשאות לניהול זהויות והרשאות גישה (IAM) ברמת מסד הנתונים. אם כן, במסוף לא מוצג בורר תפקידים במסד הנתונים, והסשן ממשיך עם ההרשאות ברמת מסד הנתונים.Google Cloud
אם יש לכם הרשאות רק של בקרת גישה פרטנית ואין לכם הרשאות ברמת מסד הנתונים ב-IAM, סימן שקיבלתם גישה לתפקיד המערכת
spanner_sys_readerאו לאחד מהתפקידים שמשויכים אליו. בוחרים תפקיד בדף סקירה כללית של מסד הנתונים כדי להמשיך את הסשן ב Google Cloud מסוף עם ההרשאות הנדרשות.
- Google Cloud SDK
אם מציינים תפקיד במסד נתונים כששולחים שאילתה, DML או פעולה בשורה, Spanner בודק את ההרשאות של בקרת גישה ברמת גרנולריות גבוהה. אם הבדיקה נכשלת, Spanner לא בודק הרשאות IAM ברמת מסד הנתונים והפעולה נכשלת.
אם לא מציינים תפקיד במסד הנתונים, Spanner בודק את הרשאות ה-IAM ברמת מסד הנתונים, ואם הבדיקות מצליחות, הסשן ממשיך עם ההרשאות ברמת מסד הנתונים.
אפשר להשתמש בשיטות האלה כדי לציין תפקיד במסד נתונים כשניגשים למסד נתונים של Spanner:
המסוף
בוחרים מסד נתונים, ואז בדף סקירה כללית של מסד הנתונים לוחצים על סמל שינוי תפקיד במסד הנתונים (עיפרון) לצד השדה התפקיד הנוכחי.
כברירת מחדל, כשמשתמש עם בקרת גישה מפורטת מתחבר לחשבון, הערך בשדה הזה הוא
public. מידע על תפקיד המערכתpublicזמין במאמר תפקידי מערכת של בקרת גישה ברמת פירוט גבוהה.בתיבת הדו-שיח Change database role, בוחרים תפקיד אחר מתוך רשימת התפקידים הזמינים.
לוחצים על עדכון.
התפקיד החדש מופיע בשדה תפקיד נוכחי.
gcloud
מוסיפים את האפשרות
--database-roleלפקודהgcloud spanner databases execute-sql, באופן הבא:gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
ספריות לקוח
C++
C#
המשך
Java
Node.js
PHP
Python
Ruby