精细访问控制系统角色

本页介绍了精细访问控制为每个数据库提供的三个预定义系统角色的特性、限制和预期用途。每个系统角色都有一组不同的权限,这些权限无法撤消。这些信息适用于 GoogleSQL 方言数据库和 PostgreSQL 方言数据库。

public 系统角色

  • 默认情况下,所有精细访问权限控制用户在 public 中都有 IAM 成员资格。

  • 所有数据库角色都继承了此角色的权限。

  • 最初,public 没有任何权限,但您可以向其授予权限。如果您向 public 授予某项特权,则该特权将可供所有数据库角色使用,包括之后创建的数据库角色。

spanner_info_reader 系统角色

  • 对于 GoogleSQL 方言数据库,此角色对 INFORMATION_SCHEMA 视图拥有 SELECT 权限;对于 PostgreSQL 方言数据库,此角色对 information_schema 视图拥有 SELECT 权限。

  • 您无法向 spanner_info_reader 授予任何其他特权。

  • 向需要对 INFORMATION_SCHEMA 视图(GoogleSQL 方言数据库)或 information_schema 视图(PostgreSQL 方言数据库)拥有不受过滤的读取权限的任何数据库角色授予此角色的成员资格。

spanner_sys_reader 系统角色

  • 此角色对 SPANNER_SYS 表具有 SELECT 权限。

  • 您无法向 spanner_sys_reader 授予任何其他特权。

  • 向必须具有对 SPANNER_SYS 架构的读取访问权限的任何数据库角色授予此角色的成员资格。

系统角色的限制

  • 您无法使用 DROP ROLE 语句删除系统角色。

  • 系统角色不能是其他数据库角色的成员。也就是说,以下 GoogleSQL 语句无效:

    GRANT ROLE pii_access TO ROLE spanner_info_reader;
    
  • 您无法向数据库角色授予 public 角色的成员资格。例如,以下 GoogleSQL 语句也无效:

    GRANT ROLE public TO ROLE pii_access;
    

    不过,您可以授予 spanner_info_readerspanner_sys_reader 角色的成员资格。例如,以下是有效的语句。

    GoogleSQL

      GRANT ROLE spanner_info_reader TO ROLE pii_access;
      GRANT ROLE spanner_sys_reader TO ROLE pii_access;
      ```
    

    PostgreSQL

    GRANT spanner_info_reader TO pii_access;
    GRANT spanner_sys_reader TO pii_access;
    

后续步骤