Funções do sistema de controle de acesso refinado

Nesta página, definimos as características, as restrições e o uso pretendido dos três papéis predefinidos do sistema que o controle de acesso refinado fornece para cada banco de dados. Cada função do sistema tem um conjunto diferente de privilégios, que não podem ser revogados. Essas informações se aplicam aos bancos de dados com dialeto GoogleSQL e PostgreSQL.

Função do sistema public

  • Por padrão, todos os usuários do controle de acesso refinado têm associação ao Identity and Access Management (IAM) em public.

  • Todos os papéis de banco de dados herdam privilégios desse papel.

  • Inicialmente, public não tem privilégios, mas você pode concedê-los. Se você conceder um privilégio a public, ele estará disponível para todos os papéis de banco de dados, incluindo os criados posteriormente.

Função do sistema spanner_info_reader

  • Esse papel tem o privilégio SELECT nas visualizações INFORMATION_SCHEMA para bancos de dados de dialeto do GoogleSQL e information_schema para bancos de dados de dialeto do PostgreSQL.

  • Não é possível conceder outros privilégios a spanner_info_reader.

  • Conceda a associação a esse papel a qualquer papel de banco de dados que precise de acesso de leitura sem filtro às visualizações INFORMATION_SCHEMA (bancos de dados de dialeto GoogleSQL) ou às visualizações information_schema (bancos de dados de dialeto PostgreSQL).

Função do sistema spanner_sys_reader

  • Esse papel tem o privilégio SELECT nas tabelas SPANNER_SYS.

  • Não é possível conceder outros privilégios a spanner_sys_reader.

  • Conceda a associação nesse papel a qualquer papel de banco de dados que precise ter acesso de leitura ao esquema SPANNER_SYS.

Restrições em papéis do sistema

  • Não é possível excluir um papel do sistema usando uma instrução DROP ROLE.

  • Os papéis do sistema não podem ser membros de outros papéis do banco de dados. Ou seja, a seguinte instrução do GoogleSQL é inválida:

    GRANT ROLE pii_access TO ROLE spanner_info_reader;
    
  • Não é possível conceder associação ao papel public aos papéis do banco de dados. Por exemplo, a seguinte instrução do GoogleSQL também é inválida:

    GRANT ROLE public TO ROLE pii_access;
    

    No entanto, é possível conceder associação aos papéis spanner_info_reader e spanner_sys_reader. Por exemplo, as instruções a seguir são 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;
    

A seguir