Saltar al contenido

ERROR: permiso denegado para la secuencia cities_id_seq usando Postgres

Esta sección fue analizado por especialistas para que tengas la seguridad de la veracidad de nuestro post.

Solución:

Desde PostgreSQL 8.2 tienes que usar:

GRANT USAGE, SELECT ON SEQUENCE cities_id_seq TO www;

GRANT USAGE: para secuencias, este privilegio permite el uso de las funciones currval y nextval.

Además, como lo señaló @epic_fil en los comentarios, puede otorgar permisos a todas las secuencias en el esquema con:

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO www;

Dado que @Phil tiene un comentario que recibe muchos votos a favor que podrían pasar desapercibidos, estoy usando su sintaxis para agregar una respuesta que otorgará permisos a un usuario para todas las secuencias en un esquema (suponiendo que su esquema sea el ‘público’ predeterminado )

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public to www;

@Tom_Gerken, @epic_fil y @kupson tienen bastante razón con sus declaraciones para dar permisos para trabajar con secuencias existentes. Sin embargo, el usuario NO obtendrá derechos de acceso a secuencias creadas en el futuro. Para hacer eso, debe combinar la declaración GRANT con una declaración ALTER DEFAULT PRIVILEGES, así:

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO www;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
    GRANT USAGE, SELECT ON SEQUENCES TO www;

Esto solo funciona en PostgreSQL 9+, por supuesto.

Esto se agregará a los privilegios predeterminados existentes, no los sobrescribirá, por lo que es bastante seguro en ese sentido.

Aquí puedes ver las reseñas y valoraciones de los usuarios

Tienes la posibilidad recomendar esta división si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *