Skip site navigation (1) Skip section navigation (2)

funcion para cambiar clave de un usuario SOLUCIONADO

From: suso <jlcubas(at)terra(dot)es>
To: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: funcion para cambiar clave de un usuario SOLUCIONADO
Date: 2009-09-15 23:06:33
Message-ID: 4AB01DF9.3020008@terra.es (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Aclaración, no funciona desde PGADMIN, pero SÍ desde código(cuando llamo a la función)...
Aprovechando este hilo, de esta manera, se puede acceder a comandos y demás de psql como pg_dump 
y este tipo de cosas?.

Si es así, hay que tener algo en cuenta?.

Muchas gracias por la ayuda.

Un saludo
Suso

> 
> 
> El 15 de septiembre de 2009 16:11, suso <jlcubas(at)terra(dot)es 
> <mailto: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

pgsql-es-ayuda by date

Next:From: EspartanoDate: 2009-09-15 23:53:47
Subject: Re: Funciones en C ???De nuevo...
Previous:From: Julio Cesar Rodriguez DominguezDate: 2009-09-15 22:39:01
Subject: Re: Consultas al catalogo de 8.3 y 8.4

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group