| From: | Juan Pablo Yañez <jyanez(at)sigma(dot)gov(dot)bo> |
|---|---|
| To: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
| Subject: | Superusuario aparte de postgres |
| Date: | 2005-06-29 18:46:16 |
| Message-ID: | 42C2EC78.705@sigma.gov.bo |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Hola a todos.
En mi aplicacion de vez en cuando necesitamos deshabilitar triggers de
las tablas, para esto encontre un metodo en la lista que ejecuta las
siguientes sentencias:
BEGIN;
-- desactivamos los triggers
UPDATE pg_catalog.pg_class SET reltriggers = 0 WHERE oid =
'nombre_tabla'::pg_catalog.regclass;
-- operaciones sobre nombre_tabla ...
-- activamos los triggers sobre nombre-tabla
UPDATE pg_catalog.pg_class SET reltriggers = (SELECT pg_catalog.count(*)
FROM pg_catalog.pg_trigger where pg_class.oid = tgrelid) WHERE oid =
'nombre_tabla'::pg_catalog.regclass;
COMMIT;
como el usuario que ejecuta esta operacion no tenia permisos se los di:
GRANT select,insert,update ON pg_catalog.pg_class TO nombre_usuario;
pero aun asi no podia ejecutar el UPDATE sobre pg_catalog.pg_class, me
daba el siguiente error: ERROR: permission denied for relation pg_class
entonces ejecute:
ALTER USER nombre_usuario CREATEUSER;
lo que me dio acceso a poder modificar los objectos del catalogo de
postgres.
Todo estaba funcionando bien hasta que el usuario en cuestion se conecto
y me cambio el password de postgres, error mio, por darle tanta
confianza. :-)
La pregunta es, como tener un usuario que pueda deshabilitar triggers
pero que no pueda ejecutar ALTER USER a postgres.
Saludos y muchas gracias de antemano.
--
Juan Pablo Yañez
Grupo DBA
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alejandro Romero Parra | 2005-06-29 19:14:52 | Re: DBLINK |
| Previous Message | Julio Rivero | 2005-06-29 18:31:05 | DBLINK |