Recientemente creé una tabla como superusuario que incluye una columna de ID de serie, por ejemplo,
create table my_table
(
id serial primary key,
data integer
);
Como quería que mi usuario no superusuario tuviera acceso de escritura a esa tabla, le concedí permisos:
grant select, update, insert, delete on table my_table to writer;
En un momento aleatorio en el tiempo después de hacerlo, las inserciones realizadas por ese usuario comenzaron a fallar porque el usuario no tenía permiso para modificar la secuencia my_table_id_seq
asociada a la columna serial. Lamentablemente no puedo reproducir eso en mi base de datos actual.
Trabajé alrededor de esto dándole al usuario el permiso requerido, así:
grant all on table my_table_id_seq to writer;
puede alguien ayudarme a entender
- ¿Por qué, en algún momento, los permisos previamente suficientes podrían comenzar a fallar?
- ¿Cuál es la forma correcta de otorgar permiso de escritura para una tabla con una columna en serie?
fuente