בדף הזה מוסבר איך לגשת למסד נתונים של 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:
המסוף
בוחרים מסד נתונים, ואז בדף Overview (סקירה כללית) של מסד הנתונים, לוחצים על סמל Change database role (שינוי תפקיד במסד הנתונים) (עיפרון) לצד השדה Current role (התפקיד הנוכחי).
כברירת מחדל, כשמשתמש עם בקרת גישה מפורטת מתחבר לחשבון, הערך בשדה הזה הוא
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#
Go
Java
Node.js
PHP
Python
Ruby