Control de acceso detallado para secuencias

En esta página, se explica cómo funciona el control de acceso detallado con secuencias de Spanner para bases de datos de dialecto GoogleSQL y bases de datos de dialecto PostgreSQL.

En el caso de los usuarios con control de acceso detallado, puedes otorgar uno o ambos de los siguientes privilegios para permitir el acceso a la información de la secuencia de lectura o generar valores a partir de ella.

  • Otorga SELECT en la secuencia para permitir el acceso de lectura a los parámetros y el estado actual de la secuencia.

    GoogleSQL

    GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;

    PostgreSQL

    GRANT SELECT ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;
  • Otorga UPDATE en la secuencia para permitir llamadas al generador de valores de secuencia.

    GoogleSQL

    GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE ROLE_NAME;

    PostgreSQL

    GRANT UPDATE ON SEQUENCE SEQUENCE_NAME TO ROLE_NAME;

Privilegios necesarios para las operaciones de secuencia

En la siguiente tabla, se incluyen detalles sobre los privilegios que necesitas cuando realizas operaciones de secuencia específicas.

Operación Requisitos de privilegios

GoogleSQL:

GET_NEXT_SEQUENCE_VALUE()

PostgreSQL:

nextval()

Requiere un privilegio UPDATE o SELECT en la secuencia. Ten en cuenta que, si ejecutas esta función a través de columnas generadas o valores predeterminados, también debes tener un privilegio INSERT o UPDATE en la columna. Un privilegio UPDATE en una secuencia no otorga automáticamente ningún privilegio en las columnas en las que deseas usar la secuencia.

GoogleSQL:

GET_INTERNAL_SEQUENCE_STATE()

PostgreSQL:

spanner.get_internal_sequence_state()

Requiere el privilegio SELECT en la secuencia que solicitas.

GoogleSQL:

INFORMATION_SCHEMA.SEQUENCES
INFORMATION_SCHEMA.SEQUENCE_OPTIONS

PostgreSQL

INFORMATION_SCHEMA.SEQUENCES

Puedes tener el privilegio SELECT o UPDATE en la secuencia que deseas consultar. Solo puedes ver las secuencias que tienes permiso para ver.

¿Qué sigue?