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

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

מעבר לאכיפה מוקדמת

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

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

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

בדוגמאות הבאות מוסבר איך להגדיר ולהסיר את הגדרת התצורה 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, תצטרכו לעדכן אותם עד 17 במרץ 2026 כך שיכללו גם את ההרשאות 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 שאילתות של תצוגות

כשמצטרפים לאכיפה מוקדמת, נדרשת ההרשאה bigquery.datasets.getIamPolicy כדי לבצע שאילתה בתצוגה INFORMATION_SCHEMA.OBJECT_PRIVILEGES.

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

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

שיטת datasets.get

ל-datasets.get method יש path parameter נוסף בשם 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.