From: | Lennin Caro <lennin(dot)caro(at)yahoo(dot)com> |
---|---|
To: | 'POSTGRES' <pgsql-es-ayuda(at)postgresql(dot)org>, Gorka <gorkapostgres(at)yahoo(dot)es> |
Subject: | RE: Crear claves aleatorias |
Date: | 2009-10-08 15:29:48 |
Message-ID: | 784710.53010.qm@web59504.mail.ac4.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- On Thu, 10/8/09, Gorka <gorkapostgres(at)yahoo(dot)es> wrote:
From: Gorka <gorkapostgres(at)yahoo(dot)es>
Subject: RE: [pgsql-es-ayuda] Crear claves aleatorias
To: "'POSTGRES'" <pgsql-es-ayuda(at)postgresql(dot)org>
Date: Thursday, October 8, 2009, 3:07 PM
>-----Mensaje original-----
>De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-
>owner(at)postgresql(dot)org] En nombre de Rafael Martinez
>Enviado el: jueves, 08 de octubre de 2009 16:03
>Para: Gorka
>CC: POSTGRES
>Asunto: Re: [pgsql-es-ayuda] Crear claves aleatorias
>
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Gorka wrote:
>> ¿Hay alguna manera en postgres de crear una función que genere
>passwords
>> aleatorias?
>>
>
>Hola
>
>Te mando esta funcion que puedes utilizar para generar claves
>aleatorias. El parametro aleatorio lo define la funcion random().
>
>- ----------------------------------------------------------------------
>--
>CREATE OR REPLACE FUNCTION generate_password(integer) RETURNS TEXT AS $$
>DECLARE
> len ALIAS FOR $1;
> cnt INTEGER;
> password TEXT :='';
>
> characters_not_included TEXT := E''',-./:;<>@^_`\\';
> BEGIN
>
> FOR cnt IN 1..len LOOP
> password := password || chr(round((random()*87)+35)::integer);
> END LOOP;
>
> password :=
>translate(password,characters_not_included,substr(md5(random()::text),ro
>und((random()*(32-
>char_length(characters_not_included))))::integer,char_length(characters_
>not_included)));
>
>RETURN password;
>
>END;
>$$ LANGUAGE plpgsql;
>- ----------------------------------------------------------------------
>--
>
>Ejemplo:
>
>SELECT generate_password(8);
> generate_password
>- -------------------
> r58R1N=Z
>(1 row)
>
Hola.
Parece un poco más aleatoria que la función anterior, ya que combina algunos
caracteres (además de letras y dígitos).
Al ejecutar la query en la ventana SQL del Pgadmin III me da el siguiente
error:
ERROR: no existe el lenguaje «plpgsql»
Estado SQL:42704
Sugerencias:Usar CREATE LANGUAGE para instalar el lenguaje en la base de
datos.
¿No es plpgsql el lenguaje en sí que utiliza postgres? ¿Qué tengo que poner
"CREATE LANGUAGE plpgsql;"? ¿Esto no afectará a la base de datos, verdad? Es
que me da un poco de miedo porque está en producción.
--
TIP 5: ¿Has leído nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html
Si plpgsql es el lenguaje procedimental de postgresql
No te va a afectar en forma negativa la base de datos
ejecuta
"create language plpgsql" para que poder ejecutar tu funcion
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2009-10-08 16:10:58 | RE: [OT]Mapas de Google y Postgis |
Previous Message | Gorka | 2009-10-08 15:07:13 | RE: Crear claves aleatorias |