relación postgres permission permiso for error denegado postgresql privileges postgresql-9.2 grant

postgresql - postgres - Permiso denegado por relación



permission denied for database postgres (8)

Intenté ejecutar el comando sql simple:

select * from site_adzone;

y tengo este error

ERROR: permission denied for relation site_adzone

Cual podría ser el problema aquí?

Intenté también seleccionar para otras tablas y obtuve el mismo problema. También traté de hacer esto:

GRANT ALL PRIVILEGES ON DATABASE jerry to tom;

pero tengo esta respuesta de la consola

WARNING: no privileges were granted for "jerry"

¿Tienes alguna idea de lo que puede estar mal?


1er e importante paso es conectar a tu db:

psql -d yourDBName

2 pasos, otorgar privilegios

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO userName;


Asegúrese de iniciar sesión en psql como propietario de las tablas. para averiguar quién es el propietario de las tablas /dt

psql -h CONNECTION_STRING DBNAME -U OWNER_OF_THE_TABLES

entonces usted puede ejecutar las subvenciones


Esto sucede con frecuencia cuando crea una tabla como usuario postgres y luego intenta acceder a ella como un usuario normal. En este caso, es mejor volver a iniciar sesión como postgres y usar ALTER TABLE OWNER TO someuser para cambiar la propiedad de la tabla al usuario que usará la tabla.


GRANT en la base de datos no es lo que necesitas. Subvención en las mesas directamente.

La concesión de privilegios en la base de datos se utiliza principalmente para otorgar o revocar privilegios de conexión. Esto le permite especificar quién puede hacer cosas en la base de datos si tienen suficientes otros permisos.

Tú quieres en cambio:

GRANT ALL PRIVILEGES ON TABLE side_adzone TO jerry;

Esto se hará cargo de este problema.


Para otorgar permisos a todas las tablas existentes en el esquema use:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA <schema> TO <role>

Para especificar los permisos predeterminados que se aplicarán a las tablas futuras, use:

ALTER DEFAULT PRIVILEGES IN SCHEMA <schema> GRANT <privileges> ON TABLES TO <role>;

p.ej

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO admin;

Si utiliza las columnas SERIAL o BIGSERIAL , probablemente querrá hacer lo mismo con las SEQUENCES , o su INSERT fallará ( la IDENTITY Postgres 10 no sufre ese problema y se recomienda sobre los tipos SERIAL ), es decir

ALTER DEFAULT PRIVILEGES IN SCHEMA <schema> GRANT ALL ON SEQUENCES TO <role>;

Vea también mi respuesta a los permisos de PostgreSQL para aplicaciones web para obtener más detalles y un script reutilizable.

Árbitro:

GRANT

ALTERAR PRIVILEGIOS POR DEFECTO


Publicar la respuesta de Ron E para otorgar privilegios en todas las tablas, ya que puede ser útil para otros.

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry;


Conéctese primero a la base de datos correcta , luego ejecute:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry;


GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to jerry; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to jerry; GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public to jerry;