RE: [pgsql-es-ayuda] Forzar contraseñas

From: Ramón Alberto Bruening González <albertobruening(at)hotmail(dot)com>
To: <rodriguez(at)ort(dot)edu(dot)uy>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Forzar contraseñas
Date: 2012-06-29 13:49:14
Message-ID: BLU157-W61E85BF68A524E3E03573BA2E50@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodriguez Fernando 2012-06-29 15:23:53 Re: Forzar contraseñas
Previous Message Rodriguez Fernando 2012-06-29 12:10:39 Forzar contraseñas