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