From: | Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> |
---|---|
To: | gilberto(dot)castillo(at)etecsa(dot)cu |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Usuarios dinamicos |
Date: | 2008-04-04 14:07:48 |
Message-ID: | 95335e4e0804040707n287dd005le7876c91de43f083@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 3/04/08, Gilberto Castillo Martínez <gilberto(dot)castillo(at)etecsa(dot)cu> escribió:
>
> Intento construir un trigger para insertar dinámicamente usuarios a mi
> BD, deseo capturar el valor de una tabla de usuarios.
>
> Les dejo la función por si me pueden echar una mano.
Tienes que ejecutar EXECUTE 'sentencia_sql' usando SQL dinámico ya que
a priori no sabes el nombre del usuario. El siguiente ejemplo funciona
create table usuarios(
nombreusuario text primary key
);
CREATE OR REPLACE FUNCTION creausuario()
RETURNS trigger AS
$BODY$
BEGIN
EXECUTE 'CREATE USER '||quote_ident(NEW.nombreusuario)
|| ' WITH LOGIN PASSWORD '||quote_literal('jw8s0F4')
|| ' VALID UNTIL '|| quote_literal('2005-01-01')||' IN GROUP lolo';
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER mi_usuario
AFTER INSERT
ON usuarios
FOR EACH ROW
EXECUTE PROCEDURE creausuario();
De todas formas me parece un método un tanto extraño... y otra cosa.
¿Qué ocurre si borras/modificas los usuarios en la tabla? Si quieres
que eso se refleje en los usuarios, deberás modificar la
función/trigger (o crear otros).
Saludos
--
Miguel Rodríguez Penabad
From | Date | Subject | |
---|---|---|---|
Next Message | Sonia Perez Peña | 2008-04-04 14:41:26 | instalacion del PHPPGADMIN |
Previous Message | MIGUEL CANCHAS | 2008-04-04 13:58:13 | RE: Problemas para ingresar datos desde un scrip t. |