Re: funcion para cambiar clave de un usuario

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;

In response to

Responses

Browse pgsql-es-ayuda by date

  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