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: | Raw Message | Whole Thread | 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 |