שינויים באמצעי הבקרה על הגישה ברמת מערך הנתונים

אם בוחרים להחיל את ההגדרה enable_fine_grained_dataset_acls_option על אמצעי בקרת הגישה ברמת מערך הנתונים, נדרשת הרשאת ניהול זהויות והרשאות גישה (IAM) bigquery.datasets.getIamPolicy כדי להציג את אמצעי בקרת הגישה של מערך נתונים מסוים ולשאילתא של התצוגה INFORMATION_SCHEMA.OBJECT_PRIVILEGES. נדרשת הרשאת bigquery.datasets.setIamPolicy כדי לעדכן את אמצעי בקרת הגישה של מערך נתונים או כדי ליצור מערך נתונים עם אמצעי בקרת גישה באמצעות ה-API.

אם לא תביעו הסכמה, אמצעי בקרת הגישה ברמת מערך הנתונים לא ישתנו.

הצטרפות לאכיפה

אתם יכולים להפעיל את האכיפה של שינויי ההרשאות. כשמצטרפים, נדרשת הרשאת bigquery.datasets.getIamPolicy כדי לקבל את אמצעי בקרת הגישה של מערך נתונים, והרשאת bigquery.datasets.setIamPolicy נדרשת כדי לעדכן את אמצעי בקרת הגישה של מערך נתונים או כדי ליצור מערך נתונים עם אמצעי בקרת גישה באמצעות ה-API.

כדי להפעיל את האכיפה, מגדירים את enable_fine_grained_dataset_acls_optionהגדרת התצורה לערך TRUE ברמת הארגון או הפרויקט. אם רוצים לבטל את ההסכמה אחרי שנתתם אותה, צריך להגדיר את הגדרת ההגדרה enable_fine_grained_dataset_acls_option לערך FALSE ברמת הארגון או הפרויקט. הוראות להפעלת הגדרות זמינות במאמר ניהול הגדרות.

דוגמאות להגדרות

בדוגמאות הבאות מוסבר איך להגדיר את הגדרת התצורה enable_fine_grained_dataset_acls_option ואיך להסיר אותה.

קביעת הגדרות הארגון

כדי להגדיר את ההגדרות של הארגון, משתמשים בהצהרת ה-DDL‏ ALTER ORGANIZATION SET OPTIONS. בדוגמה הבאה, הערך enable_fine_grained_dataset_acls_option מוגדר ל-TRUE ברמת הארגון:

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);

מחליפים את REGION באזור שמשויך לארגון, לדוגמה, us או europe-west6.

בדוגמה הבאה מבוצע ניקוי של ההגדרה enable_fine_grained_dataset_acls_option ברמת הארגון:

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);

הגדרת הגדרות הפרויקט

כדי להגדיר את הגדרות הפרויקט, משתמשים בהצהרת ה-DDL ALTER PROJECT SET OPTIONS. הצהרת ה-DDL‏ ALTER PROJECT SET OPTIONS מקבלת באופן אופציונלי את המשתנה project_id. אם לא מציינים את project_id, ברירת המחדל היא הפרויקט הנוכחי שבו השאילתה מופעלת.

בדוגמה הבאה, הערך של enable_fine_grained_dataset_acls_option מוגדר ל-TRUE.

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.enable_fine_grained_dataset_acls_option` = TRUE);

מחליפים את PROJECT_ID במזהה הפרויקט.

בדוגמה הבאה מוסרת ההגדרה enable_fine_grained_dataset_acls_option ברמת הפרויקט:

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.enable_fine_grained_dataset_acls_option` = FALSE);

שינויים בתפקידים בהתאמה אישית

אם תבחרו להפעיל את השינויים בהרשאות, הם ישפיעו על כל התפקידים בהתאמה אישית שמעניקים את ההרשאות bigquery.datasets.get, bigquery.datasets.create או bigquery.datasets.update, אבל לא מעניקים גם את ההרשאות bigquery.datasets.getIamPolicy או bigquery.datasets.setIamPolicy.

אם יש לכם תפקידים בהתאמה אישית שכוללים רק את ההרשאות bigquery.datasets.get, bigquery.datasets.update או bigquery.datasets.create, תצטרכו לעדכן אותם כך שיכללו גם את ההרשאות bigquery.datasets.getIamPolicy או bigquery.datasets.setIamPolicy, כדי לשמור על הפונקציונליות הקיימת של התפקידים בהתאמה אישית. אם אתם רוצים שהתפקידים המותאמים אישית יוכלו רק לראות או לעדכן את המטא-נתונים של מערך נתונים, אתם יכולים להשתמש בפרמטרים החדשים dataset_view ו-update_mode.

השינוי הזה לא משפיע על תפקידים מוגדרים מראש ב-BigQuery. כל התפקידים המוגדרים מראש שמעניקים את ההרשאה bigquery.datasets.get מעניקים גם את ההרשאה bigquery.datasets.getIamPolicy. כל התפקידים המוגדרים מראש שנותנים את ההרשאה bigquery.datasets.update נותנים גם את ההרשאה bigquery.datasets.setIamPolicy.

שינויים בפקודות של כלי שורת הפקודה של BigQuery

אם תפעילו את האכיפה המוקדמת, הפקודות הבאות בכלי bq יושפעו.

‫bq show

אפשר להשתמש בפקודה bq show עם הדגל הבא:

--dataset_view={METADATA|ACL|FULL}
מציין איך להחיל הרשאות כשמציגים את אמצעי בקרת הגישה או את המטא-נתונים של מערך נתונים. משתמשים באחד מהערכים הבאים:
  • METADATA: הצגת המטא-נתונים של מערך הנתונים בלבד. כדי להשתמש בערך הזה נדרשת ההרשאה bigquery.datasets.get.
  • ACL: צפייה בלבד באמצעי בקרת הגישה של מערך הנתונים. כדי להשתמש בערך הזה נדרשת ההרשאה bigquery.datasets.getIamPolicy.
  • FULL: הצגת המטא-נתונים של מערך הנתונים ואמצעי בקרת הגישה. כדי להשתמש בערך הזה נדרשות ההרשאות bigquery.datasets.get ו-bigquery.datasets.getIamPolicy.

bq update

אפשר להשתמש בפקודה bq update עם הדגל הבא:

--update_mode={UPDATE_METADATA|UPDATE_ACL|UPDATE_FULL}
המדיניות קובעת איך להחיל הרשאות כשמעדכנים את אמצעי בקרת הגישה או את המטא-נתונים של מערך נתונים. משתמשים באחד מהערכים הבאים:
  • UPDATE_METADATA: עדכון רק של המטא-נתונים של מערך הנתונים. כדי להשתמש בערך הזה נדרשת ההרשאה bigquery.datasets.update.
  • UPDATE_ACL: עדכון רק של אמצעי בקרת הגישה של מערך הנתונים. כדי להשתמש בערך הזה נדרשת ההרשאה bigquery.datasets.setIamPolicy.
  • UPDATE_FULL: עדכון המטא-נתונים של מערך הנתונים ואמצעי בקרת הגישה. כדי להשתמש בערך הזה נדרשות ההרשאות bigquery.datasets.update ו-bigquery.datasets.setIamPolicy.

שינויים בהצהרות של שפת בקרת נתונים (DCL)

אם בוחרים להפעיל את האכיפה המוקדמת, נדרשות ההרשאות הבאות כדי להריץ הצהרות GRANT ו-REVOKE במערכי נתונים באמצעות שפת בקרת הנתונים (DCL):

  • bigquery.datasets.setIamPolicy

שינויים בשאילתות של תצוגות INFORMATION_SCHEMA

כשמצטרפים לאכיפה מוקדמת, נדרשת הרשאה כדי לשלוח שאילתות לתצוגה INFORMATION_SCHEMA.OBJECT_PRIVILEGESbigquery.datasets.getIamPolicy.

שינויים בשיטות API

אחרי שתביעו הסכמה לאכיפה מוקדמת, השיטות הבאות של מערך הנתונים ב-REST v2 API יושפעו.

השיטה datasets.get

לשיטה datasets.get יש פרמטר שאילתה נוסף בשם dataset_view.

הפרמטר הזה מאפשר לכם לשלוט יותר במידע שמוחזר על ידי השיטה datasets.get. במקום להחזיר תמיד את אמצעי בקרת הגישה ואת המטא-נתונים, הפרמטר dataset_view מאפשר לציין אם להחזיר רק את המטא-נתונים, רק את אמצעי בקרת הגישה או את שניהם.

השדה access במשאב מערך הנתונים מכיל את אמצעי בקרת הגישה של מערך הנתונים. השדות האחרים, כמו friendlyName,‏ description ו-labels, מייצגים את המטא-נתונים של מערך הנתונים.

בטבלה הבאה מפורטות ההרשאה הנדרשת ותגובת ה-API לערכים השונים שנתמכים על ידי הפרמטר dataset_view:

ערך הפרמטר ההרשאות הנדרשות תגובה מה-API
DATASET_VIEW_UNSPECIFIED (או ריק)
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
ערך ברירת המחדל. הפונקציה מחזירה את המטא-נתונים ואת אמצעי בקרת הגישה של מערך הנתונים.
METADATA
  • bigquery.datasets.get
הפונקציה מחזירה את המטא-נתונים של מערך הנתונים.
ACL
  • bigquery.datasets.getIamPolicy
הפונקציה מחזירה את אמצעי בקרת הגישה של מערך הנתונים, את שדות החובה ואת השדות במשאב של מערך הנתונים שהם רק לפלט.
FULL
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
הפונקציה מחזירה את המטא-נתונים ואת אמצעי בקרת הגישה של מערך הנתונים.

אם לא תפעילו את האפשרות לאכיפה מוקדמת, או אם תבטלו את ההפעלה אחרי שהפעלתם אותה, תוכלו להשתמש בפרמטר dataset_view עם הערכים METADATA או ACL. ערכי ברירת המחדל של FULL ו-DATASET_VIEW_UNSPECIFIED (או ריקים) הם ההתנהגות הקודמת. ההרשאה bigquery.datasets.get מאפשרת לקבל גם מטא-נתונים וגם אמצעי בקרה לגישה.

דוגמה

בדוגמה הבאה נשלחת בקשת GET עם הפרמטר dataset_view שמוגדר לערך METADATA:

GET https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?datasetView=METADATA&key=YOUR_API_KEY HTTP/1.1

מחליפים את מה שכתוב בשדות הבאים:

  • YOUR_PROJECT: שם הפרויקט
  • YOUR_DATASET: השם של מערך הנתונים
  • YOUR_API_KEY: מפתח ה-API

‫datasets.update method

בשיטה datasets.update יש פרמטר שאילתה נוסף בשם update_mode.

הפרמטר הזה מאפשר לכם לשלוט יותר בשדות שמתעדכנים באמצעות השיטה datasets.update. במקום לאפשר תמיד עדכונים גם לבקרת גישה וגם למטא-נתונים, הפרמטר update_mode מאפשר לכם לציין אם לעדכן רק את המטא-נתונים, רק את בקרת הגישה או את שניהם.

השדה access במשאב מערך הנתונים מכיל את אמצעי בקרת הגישה של מערך הנתונים. השדות האחרים, כמו friendlyName,‏ description ו-labels, מייצגים את המטא-נתונים של מערך הנתונים.

בטבלה הבאה מפורטות ההרשאה הנדרשת ותגובת ה-API לערכים השונים שנתמכים על ידי הפרמטר update_mode:

ערך הפרמטר ההרשאות הנדרשות תגובה מה-API
UPDATE_MODE_UNSPECIFIED (או ריק)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
ערך ברירת המחדל. הפונקציה מחזירה את המטא-נתונים המעודכנים של מערך הנתונים ואת אמצעי בקרת הגישה.
UPDATE_METADATA
  • bigquery.datasets.update
מחזירה את המטא-נתונים המעודכנים של מערך הנתונים.
UPDATE_ACL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
מחזירה את אמצעי בקרת הגישה המעודכנים של מערך הנתונים, את שדות החובה ואת השדות במשאב של מערך הנתונים שהם רק לפלט.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
הפונקציה מחזירה את המטא-נתונים המעודכנים של מערך הנתונים ואת אמצעי בקרת הגישה.

אם לא תבחרו להפעיל את האכיפה המוקדמת, או אם תבטלו את ההסכמה אחרי שתסכימו להפעיל אותה, מערכת BigQuery תחזור להתנהגות הקודמת. ההרשאה bigquery.datasets.update תאפשר לכם לעדכן גם את המטא-נתונים וגם את אמצעי בקרת הגישה.

דוגמה

בדוגמה הבאה נשלחת בקשת PUT עם הפרמטר update_mode שמוגדר לערך METADATA:

PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1

מחליפים את מה שכתוב בשדות הבאים:

  • YOUR_PROJECT: שם הפרויקט
  • YOUR_DATASET: השם של מערך הנתונים
  • YOUR_API_KEY: שם מפתח ה-API

‫datasets.patch method

בשיטה datasets.patch יש פרמטר שאילתה נוסף בשם update_mode.

הפרמטר הזה מאפשר לכם לשלוט יותר בשדות שמתעדכנים באמצעות השיטה datasets.patch. במקום לאפשר תמיד עדכונים גם לבקרת גישה וגם למטא-נתונים, הפרמטר update_mode מאפשר לכם לציין אם לעדכן רק את המטא-נתונים, רק את בקרת הגישה או את שניהם.

השדה access במשאב מערך הנתונים מכיל את אמצעי בקרת הגישה של מערך הנתונים. השדות האחרים, כמו friendlyName,‏ description ו-labels, מייצגים את המטא-נתונים של מערך הנתונים.

בטבלה הבאה מפורטות ההרשאה הנדרשת ותגובת ה-API לערכים השונים שנתמכים על ידי הפרמטר update_mode:

ערך הפרמטר ההרשאות הנדרשות תגובה מה-API
UPDATE_MODE_UNSPECIFIED (או ריק)
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
ערך ברירת המחדל. הפונקציה מחזירה את המטא-נתונים המעודכנים של מערך הנתונים ואת אמצעי בקרת הגישה.
UPDATE_METADATA
  • bigquery.datasets.update
מחזירה את המטא-נתונים המעודכנים של מערך הנתונים.
UPDATE_ACL
  • bigquery.datasets.setIamPolicy
מחזירה את אמצעי בקרת הגישה המעודכנים של מערך הנתונים, את שדות החובה ואת השדות במשאב של מערך הנתונים שהם רק לפלט.
UPDATE_FULL
  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy
הפונקציה מחזירה את המטא-נתונים המעודכנים של מערך הנתונים ואת אמצעי בקרת הגישה.

אם לא תבחרו להפעיל את האכיפה המוקדמת, או אם תבטלו את ההסכמה אחרי שתסכימו להפעיל אותה, מערכת BigQuery תחזור להתנהגות הקודמת. ההרשאה bigquery.datasets.update תאפשר לכם לעדכן גם את המטא-נתונים וגם את אמצעי בקרת הגישה.

דוגמה

בדוגמה הבאה נשלחת בקשת PUT עם הפרמטר update_mode שמוגדר לערך METADATA:

PUT https://bigquery.googleapis.com/bigquery/v2/projects/YOUR_PROJECT/datasets/YOUR_DATASET?updateMode=METADATA&key=YOUR_API_KEY HTTP/1.1

מחליפים את מה שכתוב בשדות הבאים:

  • YOUR_PROJECT: שם הפרויקט
  • YOUR_DATASET: השם של מערך הנתונים
  • YOUR_API_KEY: שם מפתח ה-API

‫datasets.insert method

אם תבחרו להפעיל את האכיפה המוקדמת ותשתמשו בשיטה datasets.insert כדי ליצור מערך נתונים עם אמצעי בקרת גישה, מערכת BigQuery תבדוק אם למשתמש יש הרשאות bigquery.datasets.create ו-bigquery.datasets.setIamPolicy.

אם משתמשים ב-API כדי ליצור מערך נתונים ללא אמצעי בקרה לגישה, נדרשת רק ההרשאה bigquery.datasets.create.