Control de acceso pormenorizado para secuencias

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

Si quieres tener un control de acceso más exhaustivo, puedes conceder uno o ambos de los siguientes privilegios para permitir el acceso a la información de la secuencia o generar valores a partir de la secuencia.

  • Concede a SELECT el permiso de lectura de la secuencia para que pueda acceder a los parámetros y al 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;
  • Concede UPDATE en la secuencia para permitir llamadas al generador de valores de la 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 detalla qué privilegios necesitas para realizar una secuencia de operaciones específica.

Operación Requisitos de privilegios

GoogleSQL:

GET_NEXT_SEQUENCE_VALUE()

PostgreSQL:

nextval()

Requiere el 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 el privilegio INSERT o UPDATE en la columna. Un privilegio UPDATE en una secuencia no concede automáticamente ningún privilegio en las columnas en las que quieras usar la secuencia.

GoogleSQL:

GET_INTERNAL_SEQUENCE_STATE()

PostgreSQL:

spanner.get_internal_sequence_state()

Requiere el privilegio SELECT en la secuencia que solicites.

GoogleSQL:

INFORMATION_SCHEMA.SEQUENCES
INFORMATION_SCHEMA.SEQUENCE_OPTIONS

PostgreSQL

INFORMATION_SCHEMA.SEQUENCES

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

Siguientes pasos