在本教學課程中,您會在 BigQuery 中建立授權檢視表,供資料分析師使用。授權 view 可讓您與特定使用者和群組分享查詢結果,無須授予他們基礎來源資料的存取權。檢視畫面會取得來源資料的存取權,而非使用者或群組。您也可以使用檢視區塊的 SQL 查詢,從查詢結果中排除資料欄和欄位。
除了使用已授權檢視表,您也可以在來源資料中設定資料欄層級的存取權控管,然後讓使用者存取查詢受控資料的檢視表。如要進一步瞭解資料欄層級存取控管,請參閱「資料欄層級存取控管機制簡介」。
如果有多個授權檢視區塊存取同一個來源資料集,您可以授權包含檢視區塊的資料集,不必授權個別檢視區塊。
目標
- 建立資料集,以便加入來源資料。
- 執行查詢,將資料載入來源資料集中的目的地資料表。
- 建立資料集,以便加入授權 view。
- 根據 SQL 查詢建立授權 view,限制資料分析師可在查詢結果中查看的資料欄。
- 授予資料分析師執行查詢工作的權限。
- 授予資料分析師存取權,讓他們存取包含授權檢視區塊的資料集。
- 將來源資料集的存取權授予授權檢視表。
費用
在本文件中,您會使用下列 Cloud de Confiance by S3NS的計費元件:
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。
事前準備
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
如果尚未啟用 BigQuery API,請啟用。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。- 請確認您具備必要權限,可執行本文中的工作。
建立資料集來儲存來源資料
首先,請建立資料集來儲存來源資料。
如要建立來源資料集,請選擇下列任一選項:
控制台
前往「BigQuery」頁面。
點選左側窗格中的 「Explorer」。

如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「Explorer」窗格中,找到要建立資料集的專案,然後依序點選旁邊的 「View actions」(查看動作)>「Create dataset」(建立資料集)。
在「建立資料集」頁面中,執行下列操作:
在「Dataset ID」(資料集 ID) 中輸入
github_source_data。確認「位置類型」已選取「多區域」。
如果是「多區域」,請選擇「美國」或「歐盟」。在本教學課程中建立的所有資源都應位於同一個多區域位置。
點選「建立資料集」。
SQL
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE SCHEMA github_source_data;
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
建立資料表並載入來源資料
建立來源資料集後,請將 SQL 查詢結果儲存至目的地資料表,藉此填入來源資料集中的資料表。查詢會從 GitHub 公開資料集擷取資料。
控制台
前往「BigQuery」頁面。
在查詢編輯器中輸入下列查詢:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;依序點選「編輯」>「查詢設定」。
在「目的地」部分,選取「為查詢結果設定目的地資料表」。
在「Dataset」(資料集) 中輸入
PROJECT_ID.github_source_data。將
PROJECT_ID替換為專案 ID。在「Table Id」(資料表 ID) 中輸入
github_contributors。按一下 [儲存]。
按一下「執行」。
查詢完成後,在「Explorer」窗格中,依序點選「Datasets」和
github_source_data資料集。依序點選「總覽」>「資料表」,然後點選
github_contributors資料表。如要確認資料已寫入資料表,請點選「預覽」分頁標籤。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
建立資料集來儲存授權 view
建立來源資料集後,請建立新的獨立資料集,儲存您與資料分析師共用的授權檢視畫面。在後續步驟中,您會將來源資料集中的資料存取權授予授權檢視表。資料分析師就能存取授權 view,但無法直接存取來源資料。
授權 view 應在與來源資料不同的資料集中建立。 這樣一來,資料擁有者就能授權使用者存取授權 view,不必同時授予基礎資料的存取權。來源資料集和授權 view 資料集必須位於相同區域的位置。
如要建立資料集來儲存檢視區塊,請選擇下列其中一個選項:
控制台
前往「BigQuery」頁面。
點選左側窗格中的 「Explorer」。

在「Explorer」窗格中,選取要建立資料集的專案。
展開「查看動作」 選項,然後點選「建立資料集」。
在「建立資料集」頁面中,執行下列操作:
在「Dataset ID」(資料集 ID) 中輸入
shared_views。確認「位置類型」已選取「多區域」。
如果是「多區域」,請選擇「美國」或「歐盟」。在本教學課程中建立的所有資源都應位於同一個多區域位置。
點選「建立資料集」。
SQL
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE SCHEMA shared_views;
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
在新資料集中建立授權 view
您可在新資料集中建立您想要授權的視圖。這是您與資料分析師分享的視圖。這個檢視區塊是使用 SQL 查詢建立,其中排除您不希望資料分析師看到的資料欄。
github_contributors 來源資料表包含兩個 RECORD 類型的欄位:author 和 committer。在本教學課程中,您的授權 view 會排除所有作者資料 (作者姓名除外),以及所有提交者資料 (提交者姓名除外)。
如要在新資料集中建立檢視區塊,請選擇下列任一選項:
控制台
前往「BigQuery」頁面。
在查詢編輯器中輸入下列查詢。
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
將
PROJECT_ID替換為專案 ID。依序點選「檔案」>「儲存」>「儲存檢視畫面」。
在「儲存檢視畫面」對話方塊中,執行下列操作:
在「Project」(專案) 部分,確認已選取專案。
在「Dataset」(資料集) 中輸入
shared_views。在「Table」(資料表) 中輸入
github_analyst_view。按一下 [儲存]。
SQL
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
將
PROJECT_ID替換為您的專案 ID。按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
授予資料分析師執行查詢工作的權限
資料分析師必須具備 bigquery.jobs.create 權限,才能查詢檢視區塊並執行查詢作業。這項權限僅適用於執行查詢工作的專案 (帳單或執行專案),該專案可能與包含檢視區塊的專案不同。
在本節中,您會為資料分析師授予 bigquery.user 角色,讓他們在執行工作的專案中使用。bigquery.user 角色包含 bigquery.jobs.create 權限。在後續步驟中,您會授予資料分析師存取檢視區塊的權限。
如要將資料分析師群組指派給專案的 bigquery.user 角色,讓他們能使用該專案執行工作,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「IAM」(身分與存取權管理) 頁面。
請確認專案選取器中已選取分析師用來執行工作的專案。
按一下「Grant access」(授予存取權)。
在「授予存取權」對話方塊中,執行下列操作:
在「New principals」(新增主體) 欄位中,輸入包含資料分析師的群組。例如:
data_analysts@example.com。在「請選擇角色」欄位中,搜尋並選取「BigQuery 使用者」角色。
按一下 [儲存]。
授予資料分析師查詢授權檢視的權限
如要讓資料分析師查詢檢視區塊,您必須在資料集或檢視區塊層級授予 bigquery.dataViewer 角色。在資料集層級授予這個角色,分析師就能存取資料集中的所有資料表和檢視畫面。由於本教學課程建立的資料集只包含一個授權 view,因此您要在資料集層級授予存取權。如果您需要授權存取一系列授權檢視區塊,建議改用授權資料集。
您先前授予資料分析師的 bigquery.user 角色,可讓他們在執行查詢工作的專案中建立查詢工作。不過,使用者必須同時具備授權 view 或包含檢視表的資料集存取權,才能成功查詢檢視表。bigquery.dataViewer
如要授予資料分析師 bigquery.dataViewer 存取權,讓他們存取包含授權 view 的資料集,請按照下列步驟操作:
控制台
前往「BigQuery」頁面。
點選左側窗格中的 「Explorer」。

在「Explorer」窗格中,按一下「Datasets」(資料集),然後選取「
shared_views」資料集,開啟「Details」(詳細資料) 分頁。依序點選「共用」>「權限」。
在「共用權限」窗格中,按一下「新增主體」。
在「New principals」(新增主體) 部分,輸入包含資料分析師的群組,例如
data_analysts@example.com。按一下「選取角色」,然後依序選取「BigQuery」>「BigQuery 資料檢視者」。
按一下 [儲存]。
按一下 [關閉]。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
授權視圖存取來源資料集
為含有授權檢視表的資料集建立存取控管機制後,請授予授權檢視表來源資料集的存取權。這項授權會授予檢視畫面存取來源資料的權限,但不會授予資料分析師群組存取權。
如要授予授權檢視者來源資料的存取權,請選擇下列其中一個選項:
控制台
前往「BigQuery」頁面。
點選左側窗格中的 「Explorer」。

在「Explorer」窗格中,按一下「Datasets」(資料集),然後選取「
github_source_data」資料集,開啟「Details」(詳細資料) 分頁。依序點選「共用」>「授權檢視」。
在「Authorized views」(授權 view) 窗格中,為「Authorized view」(授權 view) 輸入
PROJECT_ID.shared_views.github_analyst_view。將 PROJECT_ID 替換為專案 ID。
按一下「新增授權」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
驗證設定
設定完成後,資料分析師群組的成員 (例如 data_analysts) 即可查詢檢視畫面,驗證設定。
如要驗證設定,資料分析師應執行下列查詢:
前往「BigQuery」頁面
在查詢編輯器中輸入下列陳述式:
SELECT * FROM `
PROJECT_ID.shared_views.github_analyst_view`;將
PROJECT_ID替換為專案 ID。按一下「執行」。
查詢結果大致如下。結果只會顯示作者名稱和提交者名稱。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
完整原始碼
以下是供您參考的完整教學課程原始碼。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
控制台
- 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
gcloud
刪除 Cloud de Confiance 專案:
gcloud projects delete PROJECT_ID
刪除個別資源
或者,如要移除本教學課程中使用的個別資源,請執行下列操作:
您建立的資源不需額外權限即可刪除。
後續步驟
- 如要瞭解 BigQuery 中的存取權控管,請參閱「BigQuery IAM 角色和權限」。
- 如要瞭解 BigQuery 檢視表,請參閱「邏輯檢視表簡介」。
- 如要進一步瞭解授權資料檢視,請參閱授權資料檢視。
- 如要瞭解存取控管的基本概念,請參閱 IAM 總覽。
- 如要瞭解如何管理存取控管,請參閱「管理政策」。