Traté de ejecutar el comando sql simple:
select * from site_adzone;
y recibí 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 intenté hacer esto:
GRANT ALL PRIVILEGES ON DATABASE jerry to tom;
pero recibí esta respuesta de la consola
WARNING: no privileges were granted for "jerry"
¿Tienes alguna idea de lo que puede estar mal?

Respuestas:
GRANT en la base de datos no es lo que necesita. Conceder en las mesas directamente.
La concesión de privilegios en la base de datos se usa 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 otros permisos suficientes.
Usted quiere en cambio:
Esto se encargará de este problema.
fuente
Publicar la respuesta de Ron E para otorgar privilegios en todas las tablas ya que podría ser útil para otros.
fuente
ALL SEQUENCESyALL FUNCTIONS.ALL TABLEStambién incluye vistas, por lo que no hay unALL VIEWScomando separado :-)Conéctese primero a la base de datos correcta , luego ejecute:
fuente
\connect databasename;fuente
El primer paso importante es conectarse a su base de datos:
2 pasos, otorgue privilegios
fuente
Para otorgar permisos a todas las tablas existentes en el esquema, use:
Para especificar los permisos predeterminados que se aplicarán a las tablas futuras, use:
p.ej
Si usa
SERIALoBIGSERIALcolumnas, entonces probablemente querrá hacer lo mismoSEQUENCES, o de lo contrarioINSERTfallará ( Postgres 10IDENTITYno sufre ese problema, y se recomienda sobre losSERIALtipos), es decirConsulte también mi respuesta a los permisos de PostgreSQL para la aplicación web para obtener más detalles y un script reutilizable.
Árbitro:
CONCEDER
ALTERAR PRIVILEGIOS POR DEFECTO
fuente
Esto sucede con frecuencia cuando crea una tabla como postgres de usuario y luego intenta acceder a ella como un usuario normal. En este caso, es mejor iniciar sesión como usuario de postgres y cambiar la propiedad de la tabla con el comando:
fuente
Asegúrese de iniciar sesión en psql como propietario de las tablas. para saber quién es el dueño de las mesas usa
\dtpsql -h CONNECTION_STRING DBNAME -U OWNER_OF_THE_TABLESentonces puedes ejecutar las SUBVENCIONES
fuente
Como está buscando permisos de selección, le sugiero que otorgue solo privilegios de selección en lugar de todos. Puedes hacer esto:
fuente
Debieras:
fuente
Me enfrenté a este problema una vez. simplemente cambie el usuario de la base de datos a un superusuario y su problema se resolverá.
ALTERAR USUARIO myuser CON SUPERUSUARIO;
fuente