Funções do sistema de controlo de acesso detalhado

Esta página define as caraterísticas, as restrições e a utilização pretendida das três funções do sistema predefinidas que o controlo de acesso detalhado fornece para cada base de dados. Cada função do sistema tem um conjunto diferente de privilégios que não podem ser revogados. Estas informações aplicam-se a bases de dados com dialeto GoogleSQL e bases de dados com dialeto PostgreSQL.

public função do sistema

  • Por predefinição, todos os utilizadores do controlo de acesso detalhado têm associação ao IAM em public.

  • Todas as funções da base de dados herdam privilégios desta função.

  • Inicialmente, public não tem privilégios, mas pode concedê-los. Se conceder um privilégio ao public, este fica disponível para todas as funções da base de dados, incluindo as funções da base de dados criadas posteriormente.

spanner_info_reader função do sistema

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

  • Não pode conceder outros privilégios a spanner_info_reader.

  • Conceda a adesão a esta função a qualquer função de base de dados que precise de ter acesso de leitura não filtrado às vistas INFORMATION_SCHEMA (bases de dados de dialeto GoogleSQL) ou às vistas information_schema (bases de dados de dialeto PostgreSQL).

spanner_sys_reader função do sistema

  • Esta função tem o privilégio SELECT em SPANNER_SYS tabelas.

  • Não pode conceder outros privilégios a spanner_sys_reader.

  • Conceda a associação a esta função a qualquer função de base de dados que tenha de ter acesso de leitura ao esquema SPANNER_SYS.

Restrições relativas a funções do sistema

  • Não pode eliminar uma função do sistema através de uma declaração DROP ROLE.

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

    GRANT ROLE pii_access TO ROLE spanner_info_reader;
    
  • Não pode conceder a função public às funções da sua base de dados. Por exemplo, a seguinte declaração GoogleSQL também é inválida:

    GRANT ROLE public TO ROLE pii_access;
    

    No entanto, pode conceder a subscrição nas funções spanner_info_reader e spanner_sys_reader. Por exemplo, as seguintes são afirmações 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;
    

O que se segue?