精细的访问权限控制系统角色

本页介绍了 三种预定义的系统角色,精细访问权限控制 每个数据库每个系统角色都有一个 一组不同的权限,且无法撤消。

public

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

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

  • public 最初没有权限,但您可以将其授予权限。 如果您向“public”授予相应权限,则该权限将可供 所有数据库角色,包括之后创建的数据库角色。

spanner_info_reader

  • 此角色拥有以下账号的 SELECT 权限: GoogleSQL 方言数据库的 INFORMATION_SCHEMA 视图和 PostgreSQL 方言数据库的 information_schema 视图。

  • 您无法向“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;
    

更多信息

如需了解详情,请参阅以下主题: