Funções do sistema de controle de acesso refinado

Esta página define as características, restrições e uso pretendido dos três papéis de sistema predefinidos que o controle granular de acesso oferece 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 a bancos de dados com dialetos do GoogleSQL e do PostgreSQL.

Função do sistema public

  • Por padrão, todos os usuários do controle de acesso refinado são membros do 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 conceder alguns. Se você conceder um privilégio a public, ele vai estar disponível para todos os papéis de banco de dados, incluindo os criados depois.

Função do sistema spanner_info_reader

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

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

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

Função do sistema spanner_sys_reader

  • Essa função 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 a esse papel a qualquer papel de banco de dados que precise ter acesso de leitura ao esquema SPANNER_SYS.

Restrições nos papéis do sistema

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

  • As funções do sistema não podem ser membros de outras funções do banco de dados. Ou seja, a seguinte instrução GoogleSQL é inválida:

    GRANT ROLE pii_access TO ROLE spanner_info_reader;
    
  • Não é possível conceder associação à função public para as funções 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 a participação nas funções 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