Controle de acesso refinado para sequências

Nesta página, explicamos como o controle de acesso detalhado funciona com sequências do Spanner.

Para usuários de controle de acesso refinados, conceda um ou ambos os privilégios a seguir para permitir o acesso de leitura de informações de sequência ou de geração de valores a partir dela.

  • Conceda SELECT na sequência para permitir acesso de leitura aos parâmetros e ao estado atual da sequência.

    GoogleSQL

    GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
    
  • Conceda UPDATE na sequência para permitir chamadas ao gerador de valores de sequência.

    GoogleSQL

    GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
    

Privilégios necessários para operações em sequência

A tabela a seguir contém detalhes sobre os privilégios necessários ao executar uma sequência específica de operações.

Operação Requisitos de privilégios

SQL do Google:

GET_NEXT_SEQUENCE_VALUE()

PostgreSQL:

nextval()

Requer um privilégio UPDATE ou SELECT na sequência. Se você executar essa função por meio de colunas geradas ou valores padrão, também precisará ter um privilégio INSERT ou UPDATE na coluna. Um privilégio UPDATE em uma sequência não concede automaticamente nenhum privilégio nas colunas em que você quer usar a sequência.

SQL do Google:

GET_INTERNAL_SEQUENCE_STATE()

PostgreSQL:

spanner.get_internal_sequence_state()

Exige o privilégio SELECT na sequência que você solicitar.

SQL do Google:

INFORMATION_SCHEMA.SEQUENCES
INFORMATION_SCHEMA.SEQUENCE_OPTIONS

PostgreSQL

INFORMATION_SCHEMA.SEQUENCES

Você pode ter o privilégio SELECT ou UPDATE na sequência que quer consultar. Só é possível conferir as sequências que você tem um privilégio de visualização.

A seguir