Roles del sistema de control de acceso detallado

En esta página, se definen las características, las restricciones y el uso previsto de los tres roles predefinidos del sistema que proporciona el control de acceso detallado para cada base de datos. Cada rol del sistema tiene un conjunto diferente de privilegios, que no se pueden revocar. Esta información se aplica a las bases de datos con dialecto de GoogleSQL y a las bases de datos con dialecto de PostgreSQL.

Rol del sistema public

  • De forma predeterminada, todos los usuarios del control de acceso detallado tienen membresía de IAM en public.

  • Todos los roles de base de datos heredan privilegios de este rol.

  • Inicialmente, public no tiene privilegios, pero puedes otorgarlos. Si otorgas un privilegio a public, estará disponible para todos los roles de base de datos, incluidos los que se creen posteriormente.

Rol del sistema spanner_info_reader

  • Este rol tiene el SELECT privilegio en INFORMATION_SCHEMA vistas para las bases de datos con dialecto de GoogleSQL y en information_schema vistas para las bases de datos con dialecto de PostgreSQL.

  • No puedes otorgar ningún otro privilegio a spanner_info_reader.

  • Otorga membresía en este rol a cualquier rol de base de datos que necesite tener acceso de lectura sin filtrar a las vistas INFORMATION_SCHEMA (bases de datos con dialecto de GoogleSQL) o a las vistas information_schema (bases de datos con dialecto de PostgreSQL).

Rol del sistema spanner_sys_reader

  • Este rol tiene el privilegio SELECT en las tablas SPANNER_SYS.

  • No puedes otorgar ningún otro privilegio a spanner_sys_reader.

  • Otorga membresía en este rol a cualquier rol de base de datos que deba tener acceso de lectura al esquema SPANNER_SYS.

Restricciones en los roles del sistema

  • No puedes borrar un rol del sistema con una instrucción DROP ROLE.

  • Los roles del sistema no pueden ser miembros de otros roles de base de datos. Es decir, la siguiente instrucción de GoogleSQL no es válida:

    GRANT ROLE pii_access TO ROLE spanner_info_reader;
    
  • No puedes otorgar membresía en el rol public a tus roles de base de datos. Por ejemplo, la siguiente instrucción de GoogleSQL tampoco es válida:

    GRANT ROLE public TO ROLE pii_access;
    

    Sin embargo, puedes otorgar membresía en los roles spanner_info_reader y spanner_sys_reader. Por ejemplo, las siguientes son instrucciones válidas.

    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;
    

¿Qué sigue?