Superusuario aparte de postgres

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

Responses

Browse pgsql-es-ayuda by date

  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