授權檢視表

本文件說明如何在 BigQuery 中建立授權的檢視表和已授權的物化檢視表。

總覽

資料管理員可以建立已授權的檢視表,將資料集中的部分資料分享給特定使用者和群組 (主要使用者)。管理員可以查看您分享的資料,並對其執行查詢,但無法直接存取來源資料集。

檢視類型

邏輯檢視表是 BigQuery 的預設檢視表類型,而具體化檢視表則是預先運算的檢視表,會定期快取查詢結果,以提高效能和效率。

邏輯檢視表的授權檢視表稱為「授權檢視表」,而具體化檢視表的授權檢視表則稱為「授權具體化檢視表」。

如果邏輯檢視表需要大量或計算成本高昂的查詢,您可以改為建立具體化檢視表。不過,只查詢資料的子集或使用其他技巧通常可以改善效能,而不需要建立具象化檢視畫面。

詳情請參閱下列資源:

建立授權檢視表的高階步驟

如要建立及分享檢視畫面,請查看下列概略步驟,這些步驟適用於已授權的邏輯檢視畫面和已授權的具體化檢視畫面。

  • 建立資料集,用於儲存來源資料。
  • 執行查詢,將資料載入來源資料集中的目的地資料表。
  • 建立包含授權檢視表的資料集。
  • 透過 SQL 查詢建立授權檢視表,限制資料分析師在查詢結果中看到的資料欄。
  • 授予資料分析師執行查詢工作權限。
  • 授予資料分析師對包含已授權檢視表的資料集存取權。
  • 授予已授權檢視表來源資料集的存取權。

替代方案

雖然已授權的檢視畫面具有彈性且可擴充,但下列其中一種方法可能更適合您的用途:

  • 為表格設定資料列層級政策。
  • 在表格中設定資料欄層級政策。
  • 將資料儲存在個別的資料表中。
  • 分享資料集中的所有檢視表 (已授權的資料集)。

使用資料列層級或資料欄層級安全性,或分開的資料表

資料管理員可以為資料表設定資料列層級存取權政策,或是建立用於儲存機密資料的獨立資料表,藉此限制使用者查看該資料的權限。將資料儲存在獨立的資料表中可隔離資料,並移除查看資料表中資料列數量的功能。

此外,資料管理員也可以建立及套用政策標記,限制使用者查看資料表中資料欄的權限。

將資料儲存在獨立的資料表中是最安全,但也是最缺乏彈性的做法。設定資料列層級政策既靈活又安全,而共用已授權的檢視畫面則可提供最佳效能。

如要詳細比較這些方法,請參閱下列資源:

共用資料集中的所有檢視表

如果您想讓檢視表集合存取資料集,但不必為每個個別檢視表授權,可以將檢視表群組合併為一個資料集,然後讓包含檢視表的資料集存取包含資料的資料集。

接著,您可以視需要將包含檢視畫面群組的資料集,或資料集中的個別檢視畫面存取權授予主要使用者。有權存取其他資料集的資料集稱為授權資料集。授權其他資料集存取其資料的資料集稱為「共用資料集」

詳情請參閱「已授權的資料集」和「授權資料集」。

限制

  • 在其他資料集中建立已授權的檢視表或已授權的具象化檢視表時,來源資料資料集和已授權的檢視表資料集必須位於相同的區域位置
  • 刪除授權檢視表後,系統最多可能需要 24 小時才會從檢視表清單中移除授權檢視表。在此期間,您無法存取已授權的檢視畫面,但已刪除的已授權檢視畫面可能會出現在檢視畫面清單中,並計入已授權檢視畫面限制。如果新授權檢視畫面會超出此限制,這項限制可防止您建立其他授權檢視畫面。

事前準備

授予身分與存取權管理 (IAM) 角色,為使用者提供必要的權限,以便查詢您共用的授權檢視畫面或授權具象化檢視畫面。

必要的角色

如要建立或更新已授權的檢視表,您必須具備該檢視表所屬資料集的權限,以及提供該檢視表存取權的資料集的權限。

此外,您還需要將包含檢視表的專案和資料集存取權授予使用者或群組。

包含檢視表的資料集的管理員權限

BigQuery 會將檢視表視為資料表資源,因此建立檢視表需要的權限和建立資料表相同。您還必須擁有檢視表 SQL 查詢所參照的資料表查詢權限。

如要建立檢視畫面,您必須具備 bigquery.tables.create IAM 權限。roles/bigquery.dataEditor 這個預先定義的 IAM 角色包含建立檢視畫面所需的權限。

此外,如果您具備 bigquery.datasets.create 權限,就可以在您建立的資料集中建立檢視表。如要為您不擁有的資料建立檢視表,您必須具備該資料表的 bigquery.tables.getData 權限。

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。

提供檢視表存取權的第二個資料集的管理員權限

如要更新資料集屬性,您必須具備下列 IAM 權限:

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (僅在 Google Cloud 控制台更新資料集存取權控管設定時才需要)

roles/bigquery.dataOwner 預先定義的 IAM 角色包含更新資料集資源所需的權限。

此外,如果您具備 bigquery.datasets.create 權限,就可以更新所建立資料集的屬性。

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。

視圖的專案和資料集使用者權限

如要與使用者或群組共用已授權的檢視畫面,您必須授予使用者或群組下列 IAM 權限:

  • roles/bigquery.user IAM 角色,適用於包含授權檢視畫面的專案。
  • roles/bigquery.dataViewer IAM 角色,適用於包含已授權檢視表的資料集。

使用授權檢視畫面

以下各節將說明如何使用已授權的檢視畫面和已授權的物化檢視畫面。

建立、分享及刪除授權檢視表

如需授權、分享及刪除授權檢視表的完整步驟,請參閱教學課程「建立授權檢視表」。

管理已獲授權檢視畫面的使用者或群組

授權檢視表後,您可以透過完成資料集、資料表或檢視表的下列工作,維持對檢視表的存取權:

  • 查看存取權政策。
  • 授予存取權。
  • 撤銷存取權。
  • 拒絕存取。

詳情請參閱「使用 IAM 控管資源存取權」。

移除檢視表的授權

如要移除對檢視畫面的授權,請選取下列任一選項:

主控台

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在「Explorer」窗格中展開專案並選取資料集。

  3. 依序按一下「分享」>「授權觀看」

  4. 按一下 即可移除授權

  5. 按一下 [關閉]

bq

如要從檢視畫面移除授權,請使用 bq rm 指令。輸入要移除授權的檢視表的 table_id

    bq rm \
    project_id:dataset:table_id
    

API

呼叫 tables.delete 方法,並使用 projectIDdatasetIDtableID 屬性移除資料集的已授權檢視畫面。詳情請參閱「資料表」。

配額與限制

  • 已授權的檢視表須遵守資料集限制。詳情請參閱「資料集限制」。
  • 如果您移除授權檢視表,系統最多可能需要 24 小時才會從系統中移除所有檢視表參照。為避免發生錯誤,請等待 24 小時再重複使用已移除的檢視畫面名稱,或是為檢視畫面建立專屬名稱。

進階主題

以下各節將說明使用授權檢視畫面的進階方法。

結合資料列層級安全性和授權檢視畫面

邏輯檢視或具體化檢視中顯示的資料會根據基礎來源資料表的資料列層級存取政策進行篩選。

如要進一步瞭解資料列層級安全防護機制與具體化檢視表的互動方式,請參閱「將資料列層級安全防護機制與其他 BigQuery 功能搭配使用」。

結合資料欄層級安全防護機制與授權檢視畫面

資料欄層級安全性對檢視畫面的影響,與檢視畫面是否為授權檢視畫面無關。

如需權限套用方式的詳細說明,請參閱查詢檢視畫面,瞭解如何設定資料欄層級的安全性。

使用 BigQuery 共用功能與授權資料檢視

BigQuery sharing (舊稱 Analytics Hub) 是資料交換平台,具備下列功能:

  • 跨機構分享大量資料和洞察資料。
  • 採用完善的安全性和隱私權架構。
  • 支援將 BigQuery 資料集 (稱為「共用資料集」) 及其相關的已授權檢視表和已授權資料集,發布給一組訂閱者。

連結的資料集是唯讀 BigQuery 資料集,做為共用資料集的指標或參照。訂閱「分享清單」會在專案中建立已連結的資料集,但不會建立資料集的副本,因此訂閱者可以讀取資料,但無法新增或更新其中的物件。

系統不支援參照已連結資料集中資料表的具體化檢視表。

詳情請參閱共用功能簡介

後續步驟