BigQuery实操手册-如何创建授权视图?

BigQuery 是一个 PB 级的分析数据仓库,可用于对大量数据近乎实时地运行 SQL 查询。

在 BigQuery 中,为视图授予数据集访问权限也称为创建已获授权的视图。已获授权的视图可让您与特定用户和群组共享查询结果,而无需为其授予底层表的访问权限。

您还可以使用视图的 SQL 查询来限制用户可查询的列(字段)。


创建源数据集

首先,创建一个数据集来存储源数据。

在本操作实验中,通过查询 GitHub 公开数据集填充源数据集中的表。源数据集中的数据包含您不希望数据分析师看到的信息。因此,您使用已获授权的视图来限制对数据的访问。


要创建源数据集,请执行以下操作:

1.在 Cloud Console 中,打开 BigQuery 页面。

2.在 探索器 面板中,选择您要在其中创建数据集的项目。

3.展开 操作 选项,然后点击 创建数据集 

4.对于 数据集 ID ,请键入 GCPQuickStart

5.保留其他默认设置,然后点击 创建数据集 


创建源数据集后,您可以使用 SQL 查询在其中填充表。此查询会从 GitHub 公开数据集中检索数据。


1.在 Cloud Console 中,打开 BigQuery 页面。

2.点击 编写新查询 

3.复制以下查询并粘贴到 查询编辑器 文本区域中。


4.点击 更多 ,然后选择 查询设置 

5.在 目标位置 部分,勾选 为查询结果设置目标表 对应的复选框。

· 在 项目名称 部分,确保已选中您的项目。

· 在 数据集名称 部分,确保已选中 GCPQuickStart。

· 在 表名称 部分,输入 github_contributors。

· 点击 保存 

6. 点击 运行 

7. 完成查询后,点击 github_contributors,然后点击 预览 ,验证数据是否已写入表中。



创建用于存储视图的数据集

创建源数据集后,您需要创建一个新的独立数据集,以存储要与数据分析师共享的授权视图。在稍后的步骤中,您将向授权视图授予对源数据集内数据的访问权限。您的数据分析师将有权访问已获授权的视图,但无权直接访问源数据。

已获授权的视图应在与源数据不同的数据集中创建。这样,数据所有者可以为用户提供对已授权的视图的访问权限,而无需同时授予对底层数据的访问权限。

源数据数据集和已获授权的视图数据集必须位于同一地区位置。


要创建用于存储视图的数据集,请执行以下操作:

1. 在 Cloud Console 中,打开 BigQuery 页面。

2. 在探索器面板中,选择您要在其中创建数据集的项目。

3. 展开 操作选项,然后点击创建数据集

4. 对于数据集 ID,请键入 GCPShared_views。

5. 保留其他默认设置,然后点击创建数据集


在新数据集中创建视图

在新数据集中,您可以创建想要授权的视图,即您与数据分析师共享的视图。该视图是使用 SQL 查询创建的,其中未包含您不希望数据分析师看到的列。

在本教程中,您的共享视图不包含除作者姓名以外的作者信息,且不包含除提交者姓名以外的提交者信息。


要在新数据集中创建视图,请执行以下操作:

1.在 Cloud Console 中,打开 BigQuery 页面。

2.点击 编写新查询 

3. 复制以下查询并粘贴到 查询编辑器 文本区域中。请将project_id 替换为您的项目 ID。


4. 在 查询编辑器 的 保存 下拉列表中,选择 保存视图 

5. 在 保存视图 对话框中,执行以下操作:

· 在 项目名称 部分,确保已选中您的项目。

· 在 数据集名称 部分,确保已选中 GCPQuickStart。

· 在 表名称 部分,输入 github_analyst_view。

· 点击 保存 



向数据分析师分配项目级 IAM 角色

为了查询视图,您的数据分析师需要具有运行查询作业的权限。bigquery.user 角色具有在项目中运行作业(包括查询作业)的权限。如果您向用户或群组授予项目级层的 bigquery.user 角色,则用户可创建数据集,并可针对这些数据集中的表运行查询作业。bigquery.user 角色不针对用户尚未创建的数据集授予用户查询数据、查看表数据或查看表架构详细信息的权限。

向数据分析师分配项目级层的 bigquery.user 角色后,他们也无法查看或查询包含视图所查询的表的数据集中的表数据。bigquery.user 角色也不会授予用户更新视图的权限。应向企业中的大多数人(数据科学家、商业智能分析师和数据分析师)分配项目级层的 bigquery.user 角色。

当您将群组添加到 IAM 角色时,电子邮件地址和网域必须与某个有效的 Google 帐号或 Google Apps 帐号相关联。


如需将数据分析师群组分配给项目级层的 bigquery.user 角色,请执行以下操作:

1. 在 Google Cloud Console 中打开 IAM 网页。

2. 点击 选择项目 

3. 选择您的项目,然后点击 打开 

4. 在 IAM 页面上,点击 添加 

5. 在添加主帐号对话框中,执行以下操作:

· 在主账号框中,输入包含数据分析师的群组(例如 data_analysts@example.com)。

· 在 选择角色 框中,搜索 BigQuery User 角色并将其选中。

· 点击 保存 


向包含视图的数据集分配访问权限控制

为了让数据分析师能够查询视图,需要针对包含该视图的数据集向他们授予bigquery.dataViewer 角色。bigquery.user 角色为您的数据分析师提供创建查询作业所需的权限。但是,他们无法成功查询视图,除非他们还拥有对包含该视图的数据集的 bigquery.dataViewer 访问权限。


要向数据分析师提供对数据集的 bigquery.dataViewer 访问权限,请执行以下操作:

1. 在 浏览器 面板中,选择 GCPShared_views 数据集。

2. 展开 操作 选项,然后点击 打开 

3. 点击 分享数据集 

4. 在添加主账号文本框中,输入包含数据分析师的群组(例如:data_analysts@example.com)。

5. 点击 选择角色 ,然后选择 BigQuery > BigQuery Data Viewer

6. 点击 添加 

7. 点击 完成 



向视图授予访问源数据集的权限

当您为包含视图的数据集创建访问权限控制后,会将视图添加为源数据集中已获授权的视图。此授权为视图(而非数据分析师群组)提供源数据的访问权限。


要向视图授予访问源数据的权限,请执行以下操作:

1. 在 浏览器 面板中,选择 GCPShared_views 数据集。

2. 展开 操作 选项,然后点击 打开 

3. 点击 共享 ,然后选择 向视图授权 

4. 在打开的已获授权的视图窗格的已获授权的视图字段中,输入 github_analyst_view 视图。

5. 点击添加授权


github_analyst_view 视图现在有权访问源数据集中的数据。


验证配置

配置完成后,数据分析师群组(例如 data_analysts)的成员可以通过查询视图来验证配置。


要验证配置,请执行以下操作:

1. 让数据分析师群组的成员转到 Cloud Console 中的 BigQuery 页面。

2. 点击编写新查询

3. 复制以下查询并粘贴到查询编辑器文本区域中。请将 project_id 替换为您的项目 ID。




———

WebEye是中国大陆地区首家获得 Google Cloud MSP 资质的合作伙伴。WebEye致力于用创新的技术向中国企业提供数字化效率创新服务,实现数字化赋能。我们不断帮助客户打造新的运营与协作方式,打造新的竞争优势,构建资源高效链接,共创价值生长空间。

WebEye整合全球资源,打造全球数字化营销体系,为企业提供营销增长服务营销增长引擎以及企业上云三大板块业务,涵盖数字营销、数字创意、游戏发行、流量变现、程序化广告、数据洞察、云计算等一站式全链条增长产品矩阵,是中国互联网出海领军企业。

返回全部