Cambiar en cascada propietario de tablas

From: Luis Eduardo Villarruel <esisnet(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Cambiar en cascada propietario de tablas
Date: 2007-08-22 16:32:09
Message-ID: 46CC6509.80401@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Hola Gente de la lista,

Tengo instalado Postgres 7.4 y me conecto a la base de datos a través
del cliente psql, la base de datos tiene 250 tablas, estas tablas están
en el esquema public (el esquema por defecto), todas las tablas de este
esquema pertenecen al superusuario postgres, por eso cuando se ejecuta
una consulta con las credenciales de otro usuario me sale el siguiente
error.

ERROR: permission denied for relation nombretabla

O.k. ejecuté la siguiente sentencia:

GRANT ALL PRIVILEGES ON DATABASE nombreDB TO myOtroUsuario;

Me aparece el mensaje de que lo privilegios fueron concedidos, pero al
repetir la consulta bajo las credenciales de myOtroUsuario sale el mismo
error.
Como esto falló intenté ejecutando esta otra sentencia

GRANT ALL PRIVILEGES ON SCHEMA public TO myOtroUsuario;

Me concedió los permisos pero al intentar ejecutar el select nuevamente
me arrojó errores. Entonces intente con esto otro.

ALTER SCHEMA public OWNER TO myOtroUsuario;

Esto falló, la primera razón es que en la versión de postgres que tengo
(7.4) no se soporta esta sentencia y la segunda es que creo que el
esquema public debe ser siempre de propiedad del usuario postgres.

Lo último que hice fue:

ALTER TABLE public.MyTabla OWNER TO myOtroUsuario;

Esto me funcionó, y al ejecutar un select sobre la tabla bajos las
credenciales de myOtroUsuario lo pude hacer sin problemas. Así que
solucioné el problema en parte, lo complicado de esto es que son 250
tablas y quisiera saber si hay un método mas rapido para cambiar el
propietario de todas estas tablas, En lugar de hacer esto tabla por
tabla. O si hay manera de conceder privilegios sobre todas estas tablas
a la vez con la sentencia GRANT ALL. También se que para cada base de
datos hay un esquema llamado pg_catalog que contiene información sobre
el sistema y los privilegios que cada usuario tiene sobre los objetos de
la base de datos, tal vez haciendo un UPDATE en alguna tabla de este
esquema pueda cambiar los privilegios o el propietario de todas estas
tablas.

No se agradezco cualquier ayuda que me puedan brindar.

Gracias

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-08-22 16:54:54 Re: Cambiar en cascada propietario de tablas
Previous Message MIGUEL CANCHAS 2007-08-22 16:19:06 ACCESO A LOS USUARIOS