From: | Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com> |
---|---|
To: | suso <jlcubas(at)terra(dot)es> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: funcion para cambiar clave de un usuario |
Date: | 2009-09-15 21:43:06 |
Message-ID: | 925902880909151443qaad9abeg23979ad5d9ac14e2@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 15 de septiembre de 2009 16:11, suso <jlcubas(at)terra(dot)es> escribió:
> Hola de nuevo, tenngo esta función para intentar cambiar el pass del
> usuario,pero me da error al intentar ejecutarla desde el mismo pgadmin, está
> mal escrita..
>
> El error me lo da en la línea del ALTER ROLE.
>
> CREATE OR REPLACE FUNCTION cambiar(clave character varying)
> RETURNS boolean AS
> $BODY$
> DECLARE
> nombre varchar;
> BEGIN
> nombre = current_user;
> ALTER ROLE nombre WITH PASSWORD clave;
> RETURN true;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE
>
> He buscado info en el manual de postgres, en internet, y "supuestamente"
> esta bien puesto, pero no es así, por qué, qué estoy haciendo mal?.
>
> Muchas gracias
> Un saludo
> Suso
>
Imagino que el error que te marca es que no encuentra el role nombre.
Para hacer esto tendrias que armar la sentencia del alter role con execute.
CREATE OR REPLACE FUNCTION cambiar(clave character varying)
RETURNS boolean AS
$BODY$
DECLARE
--nombre varchar;
BEGIN
--nombre = current_user;
execute 'ALTER ROLE '||current_user ||' WITH PASSWORD
'''||clave||'''';
RETURN true;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
From | Date | Subject | |
---|---|---|---|
Next Message | ramirex | 2009-09-15 21:52:36 | Re: Rendimiento de postgres |
Previous Message | Marcos Luis Ortiz Valmaseda | 2009-09-15 21:38:10 | Re: funcion para cambiar clave de un usuario |