授权视图概览

授权视图是表的逻辑视图 对 Bigtable 数据进行精细的访问权限控制。一个 已获授权的视图是您配置为包含 特定的表数据。然后向已获授权的视图授予访问权限 与对表的访问相互独立

授权视图对于多租户表或其他 如果您的表包含并非所有用户都能够使用的数据 访问权限。与其他数据库服务中的视图不同,Bigtable 授权视图可用于控制读写权限。您 可以以编程方式创建数千个授权视图 您可以使用其他存储系统所谓的“可更新的视图”或“已过滤” 别名。"

本文档介绍了已获授权的视图,还提供了定义示例 文件。在阅读本文档之前, 请先熟悉Bigtable 存储空间 模型。如需相关说明, 请参阅创建和管理授权视图

授权视图的定义

在创建授权视图时,您可以通过指定 使用以下参数之一添加到已获授权的视图中:

  • 行键前缀 - 例如,所有以 examplepetstore1| 开头的行
  • 列限定符前缀 - 例如,其限定符 以指定列族中的 order# 开头
  • 列限定符 - 例如,只有 order-examplepetstore 列 指定的列族
  • 行键前缀和列限定符的组合

如果多个列族中使用相同的列限定符,并且您希望 在视图中包含具有该限定符的所有列,则必须指定每个 请在定义 视图。

用于定义 将被视为服务数据因此, 使用行键或列限定符值创建授权视图, 包含敏感信息。对于 有关我们如何处理服务数据的信息,请参阅 Google Cloud 隐私权 通知

在某个族或所有行中包括列

如果您想确保添加到 基础表也包含在您的授权视图中, 应指定空字符串 ("") 作为列限定符前缀。对于 例如,定义文件会将以下内容包含在系列子集中: "qualifierPrefixes": [""]

同样,如果您想定义包含所有 表中的行,指定空字符串 ("") 作为行键前缀。在 定义文件中,在视图子集中将其写为 "rowPrefixes": [""]

定义文件示例

本部分介绍了授权视图的 JSON 格式示例 定义文件

以下是授权视图的定义文件示例 包含行键前缀为 examplepetstore1# 的所有行。

    {
      "subsetView":
      {
        "rowPrefixes": ["examplestore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

以下是授权视图的定义文件示例 包含 order 列族中的 skus 列以及 customer 列族。

"subsetView": {
 "familySubsets": {
  "order": {
     "qualifiers": ["skus"]
  }
}
  "familySubsets": {
    "key": "customer"
    "qualifierPrefixes": [""]
  }
}

以下是授权视图的定义文件示例 仅包含 orderskus 列中的数据 行键前缀为 examplepetstore1# 的行中的列族。

"subsetView": {
  "rowPrefixes": ["examplepetstore1#"]
  "familySubsets": {
    "order": {
      "qualifiers": ["skus"]
    }
  }
}

后续步骤