创建和管理授权视图
本文档介绍如何使用 Google Cloud CLI 在已获授权的视图上定义和创建视图以及执行其他管理操作。在阅读本文档之前,您应先熟悉授权视图概览。
所需的角色
如需获取对授权视图执行管理操作所需的权限,请让管理员向您授予底层表的 Bigtable Admin (roles/bigtable.admin
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
此预定义角色包含对授权视图执行管理操作所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需对授权视图执行管理操作,您需要拥有以下权限:
-
bigtable.authorizedViews.get
-
bigtable.authorizedViews.list
-
bigtable.authorizedViews.create
-
bigtable.authorizedViews.update
-
bigtable.authorizedViews.delete
-
bigtable.authorizedViews.getIamPolicy
-
bigtable.authorizedViews.setIamPolicy
-
bigtable.authorizedViews.readRows
-
bigtable.authorizedViews.sampleRowKeys
-
bigtable.authorizedViews.mutateRows
如需了解如何在已获授权的视图级别管理 Bigtable IAM 角色,请参阅已获授权的视图级 IAM 管理。
创建授权视图
创建已获授权的视图时,请考虑将对其运行的查询。发送到授权视图的读取、写入和删除请求必须仅引用该授权视图中的数据。例如,如果您尝试读取、写入或删除表中的列不在授权视图中的行,则请求将失败。
为避免因向表中添加不在授权视图中的列而导致对授权视图的数据请求失败的情况,您可以为列族指定空的列限定符前缀 ""。
您可以为每个授权视图指定最多 100 个定义参数。
gcloud
运行 bigtable authorized-views create
命令。
gcloud bigtable authorized-views create AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID \
--definition-file=DEFINITION_FILE_PATH
请替换以下内容:
AUTHORIZED_VIEW_ID
:尚未用于表的授权视图的永久标识符INSTANCE_ID
:包含该表的实例的永久性标识符TABLE_ID
:您要为其创建授权视图的表的永久性标识符DEFINITION_FILE_PATH
:授权视图的有效 JSON 格式表示形式的路径。如需查看格式正确的定义文件示例,请参阅定义文件示例。
您也可以在不提供定义文件的情况下运行该命令。在这种情况下,gcloud CLI 会打开一个编辑器并提示您输入值。
如需确认是否已创建授权视图,请获取表的授权视图列表。
Java
如需了解如何安装和使用 Bigtable 客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
修改已获授权的视图
gcloud
使用 bigtable authorized-views
update
命令修改已获授权的视图。
gcloud bigtable authorized-views update AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID \
--definition-file=DEFINITION_FILE_PATH
请替换以下内容:
AUTHORIZED_VIEW_ID
:授权视图的永久标识符INSTANCE_ID
:实例的永久性标识符TABLE_ID
:源表的永久标识符DEFINITION_FILE_PATH
:授权视图的有效 JSON 格式表示形式的路径。如需查看格式正确的定义文件示例,请参阅定义文件示例。
您也可以在不提供定义文件的情况下运行该命令。在这种情况下,gcloud CLI 会打开一个编辑器并提示您输入值。
可选:为防止 gcloud CLI 显示确认提示,显示当前授权视图结构与更新提交后之间的差异,请将 --no-interactive
标志附加到命令。
Java
如需了解如何安装和使用 Bigtable 客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
启用或停用删除保护
如需为已获授权的视图启用删除保护,请在 update 命令中添加 --deletion-protection
。
如需停用删除保护,请在更新命令中添加 no-deletion-protection
。
删除已获授权的视图
如果您删除某个表,则该表的所有授权视图也将被删除。
如果您删除了已获授权的视图,则无法恢复删除。但是,如果您删除表,然后恢复删除的表,则该表的所有授权视图都将与表一起恢复。然后,您必须为已获授权的视图和表重新配置 IAM。如需了解详情,请参阅恢复删除的表。
gcloud
使用 bigtable instances tables
authorized-views delete
命令删除已获授权的视图。
gcloud bigtable authorized-views delete AUTHORIZED_VIEW_ID \
--instance=INSTANCE_ID \
--table=TABLE_ID
请替换以下内容:
AUTHORIZED_VIEW_ID
:授权视图的永久标识符INSTANCE_ID
:实例的永久性标识符TABLE_ID
:源表的永久标识符
可选:为防止 gcloud CLI 显示要求您确认或取消删除的确认提示,请在命令后附加 --nointeractive
标志。
Java
如需了解如何安装和使用 Bigtable 客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
获取表的授权视图列表
gcloud
运行 bigtable authorized-views list
命令:
gcloud bigtable authorized-views list \
--instance=INSTANCE_ID \
--table=TABLE_ID
请替换以下内容:
INSTANCE_ID
:实例的永久性标识符TABLE_ID
:表的永久标识符
Java
如需了解如何安装和使用 Bigtable 客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
查看授权视图的相关详情
gcloud
如需获取有关授权视图的详细信息,请运行 bigtable instances
tables authorized-views describe
命令:
gcloud bigtable authorized-views describe \
–-instance=INSTANCE_ID \
–-table=TABLE_ID \
–-view=AUTHORIZED_VIEW_ID
请替换以下内容:
INSTANCE_ID
:实例的永久性标识符TABLE_ID
:表的永久标识符AUTHORIZED_VIEW_ID
:授权视图的永久标识符
Java
如需了解如何安装和使用 Bigtable 客户端库,请参阅 Bigtable 客户端库。
如需向 Bigtable 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。