Re: Forzar contraseñas

From: Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy>
To: Ramón Alberto Bruening González <albertobruening(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Forzar contraseñas
Date: 2012-06-29 15:23:53
Message-ID: 4FEDC889.5020408@ort.edu.uy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias Ramón, esto es lo que necesitaba, me hubiera gustado que
fuera nativo de la base de datos, pero quizás se pueda incluir en
próximas versiones.

El 29/06/2012 10:49, Ramón Alberto Bruening González escribió:
> Buen dia a Todos:
>
> Tengo una solucion implementada de la siguiente forma:
>
> Tengo una tabla de usuarios con los siguientes campos:
>
> CREATE TABLE usuario."USU_USUARIO"
> (
> "Usuario" character varying(20) NOT NULL,
> "NombreUsuario" character varying(30) NOT NULL,
> "ApellidoUsuario" character varying(20) NOT NULL,
> "Activo" boolean NOT NULL DEFAULT true,
> "DocumentoIdentidad" integer NOT NULL,
> "Observacion" character varying,
> "ProxFechaCambioContrasenna" date NOT NULL,*(Fecha de control de
> cambio de contaseña)*
> "PeriodoCambioContrasenna" smallint, *(Cada cuantos dias tiene que
> cambiar la contraseña)*
> "UltimoAcceso" timestamp without time zone,
> "FechaHoraCreacion" timestamp(0 without time zone DEFAULT now(),
> "Conectado" boolean,
> "ForzarCambioContrasenna" boolean DEFAULT false, *(En caso que el
> usaurio solicite un cambio de contraseña por diversos motivos)*
> "UsuarioCreacion" character varying(20) DEFAULT getpgusername(),
> "UltUsuarioMod" character varying(20),
> "UltFechaHoraMod" timestamp without time zone,
> "UsuarioAnt" character varying(20),
> "CodCentro" smallint,
> CONSTRAINT "USUARIO_pkey" PRIMARY KEY ("Usuario"),
> CONSTRAINT "USU_USUARIO_fk" FOREIGN KEY ("CodCentro")
> REFERENCES general."CENTRO" ("CodCentro") MATCH SIMPLE
> ON UPDATE NO ACTION ON DELETE NO ACTION
> )
>
> Cuando la fecha del sistema es mayor a la fecha de vencimiento o se
> pide forzar contraseña, ejecuto la siguiente funcion:
>
> *CREATE OR REPLACE FUNCTION
> usuario.pa_actualizar_usu_contrasenna(_usuario character varying,
> _contrasenna character varying, _proxfechacambiocontrasenna timestamp
> without time zone, _programa character varying, _modulo character
> varying, _operacion smallint)
> RETURNS void AS
> $BODY$
> DECLARE
> varactividad varchar;
> BEGIN
> execute 'alter role ' || quote_ident(_usuario) || ' password ' ||
> quote_literal(_contrasenna); (Actualizo la contraseña con lo que
> ingreso el usuario)
> UPDATE usuario."USU_USUARIO"
> SET "ProxFechaCambioContrasenna" = _proxfechacambiocontrasenna
> (Actualizo la proxima fecha de cambio de contraseña)
> , "ForzarCambioContrasenna" = false (En caso que pidio
> forzar contraseña, inicializo a falso)
> WHERE "Usuario" = _usuario;
> varactividad = 'Cambio de Contrasenna del Usuario ='|| _usuario;
> execute usuario.pa_registrar_auditoria (getpgusername(),
> _programa, _modulo, varactividad, _operacion);
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;*
>
> Si el administrador del sistema marcó forzar contraseña a pedido del
> usuario, se ejecuta el siguiente script:
>
> *if _forzarcambiocontrasenna = true then
> execute 'alter user ' || quote_ident(_usuario) || ' WITH
> PASSWORD (Contraseña por Defecto)';
> end if; *
>
>
> > Date: Fri, 29 Jun 2012 09:10:39 -0300
> > From: rodriguez(at)ort(dot)edu(dot)uy
> > To: pgsql-es-ayuda(at)postgresql(dot)org
> > Subject: [pgsql-es-ayuda] Forzar contraseñas
> >
> > Vuelvo sobre el tema
> > El valid until funciona, pasada esa fecha el usuario no se puede
> > conectar, por lo cual no puede cambiar la contraseña, no es lo que
> busco.
> > Mi idea es algo como lo que tiene oracle, tiene fecha de vencimiento,
> > periodo de gracia y bloqueo automático (valid until).
> > El funcionamiento requerido es que mande algun tipo de sqlwarning en la
> > conexion avisando que llego el tiempo de vencimiento, para que las
> > aplicaciones puedan pedir el cambio durante el periodo de gracia, luego
> > de ese tiempo, la contraseña se bloquea.
> > Podria complicarse mas poniendo tiempo de vigencia en los roles, etc,
> > pero el sqlwarning, ayudaria en un primer momento.
> >
> > Saludos Fernando rodriguez
> >
> > -
> > Enviado a la lista de correo pgsql-es-ayuda
> (pgsql-es-ayuda(at)postgresql(dot)org)
> > Para cambiar tu suscripción:
> > http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2012-06-29 18:17:53 Re: Poblema con campo tipo "lo"
Previous Message Ramón Alberto Bruening González 2012-06-29 13:49:14 RE: [pgsql-es-ayuda] Forzar contraseñas