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
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 |