Re: Usuarios dinamicos

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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.