Funciones detalladas del sistema de control de acceso

En esta página, se definen las características, las restricciones y el uso previsto de las tres funciones predefinidas del sistema que proporciona el control de acceso detallado a cada base de datos. Cada rol del sistema tiene un conjunto diferente de privilegios, que no se pueden revocar.

public

  • Todos los usuarios de control de acceso detallados tienen membresía de IAM en public de forma predeterminada.

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

  • Inicialmente, public no tiene privilegios, pero puedes otorgarle privilegios. Si otorgas un privilegio a public, estará disponible para todos los roles de bases de datos, incluidos los que se crearon después.

spanner_info_reader

  • Esta función tiene el privilegio SELECT en las vistas INFORMATION_SCHEMA para las bases de datos del dialecto de GoogleSQL y en las vistas de information_schema para las bases de datos del dialecto de PostgreSQL.

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

  • Otorga la membresía de esta función a cualquier función de base de datos que necesite tener acceso de lectura sin filtros a las vistas INFORMATION_SCHEMA (bases de datos del dialecto de GoogleSQL) o a las vistas information_schema (bases de datos de PostgreSQL).

spanner_sys_reader

  • Esta función tiene el privilegio SELECT en las tablas SPANNER_SYS.

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

  • Otorga membresía en esta función a cualquier función de base de datos que deba tener acceso de lectura al esquema SPANNER_SYS.

Restricciones a los roles del sistema

  • No puedes borrar una función del sistema con una sentencia DROP ROLE.

  • Los roles del sistema no pueden ser miembros de otros roles de la 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 la función public a las funciones de tu 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 declaraciones 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;
    

Más información

Para obtener más información, consulta: