Re: Seguridad en tablas

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Andres Ortiz <ing(dot)andresortiz(at)gmail(dot)com>
Cc: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>, Rommel Oramas <rommel(dot)oramas(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Seguridad en tablas
Date: 2005-12-02 16:15:40
Message-ID: c2d9e70e0512020815r787e35eao9dc1ffe17b9baa17@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> El 2/12/05, Jaime Casanova<systemguards(at)gmail(dot)com> escribió:
> > <Limpiando... borrando conversaciones enredadas>
> >
> > On 12/2/05, Andres Ortiz <ing(dot)andresortiz(at)gmail(dot)com> wrote:
> > > El unico campo que me interesa proteger es el que tiene el nombre de
> > > usuario, y si hay alguna manera de que al vincular las tablas de
> > > PostgreSQL via ODBC en Access no me lo permita o necesite de un
> > > usuario o contraseña para logralo.
> > >
> >
> > OK Andres, Manuel y Alvaro tienen toda la razon (al parecer algo se
> > enredo en mi cerebro y no me dejo pensar claramente, seria PHP?)...
> >
> > Aunque Alvaro y Manuel aconsejan que crees una vista yo solo crearia
> > una nueva tabla y una regla, algo asi:
> >
> > CREATE TABLE sanguijuelas (
> > usuario tipo_dato not null
> > );
> >
> >
> > CREATE RULE no_a_las_sanguijuelas AS ON UPDATE TO tabla
> > WHERE NEW.usuario <> OLD.usuario
> > DO INSTEAD INSERT INTO sanguijuelas VALUES (NEW.usuario);
> >
> >
> > Con la regla evitas que modifiquen la tabla cuando el cambio que hacen
> > incluye cambiar el usuario y ademas dejas un registro de que usuario
> > quizo hacer eso en la tabla sanguijuelas.
> >
> >
On 12/2/05, Andres Ortiz <ing(dot)andresortiz(at)gmail(dot)com> wrote:
> Exelente idea la que me acabas de decir, se me olvido comertar que soy
> algo nuevo en esto del PostgreSql, no conocia la existencia de reglas,
> pero ya mismo indago sobre la creacion de reglas, agradezco abusando
> de tus conocimientos, que me pudieras regalar donde encuentro el
> registro de que usuario quizo meterme el gol con esto del fraude para
> mas adelante tomar medidas drasticas. De verdad te agradesco muchisimo
> esta solucion y to te imaginas del embrollo que me acabas de sacar,
> cualquier problema con Php con gusto te colaboro.
>

en la tabla sanguijuelas que te puse ahi... se va a crear un registro
cada vez que un usuario intente modificar el campo, incluso puedes
añadir un campo fecha para indicar en que momento intentaron hacer el
cambio y hasta podrias añadir para la direccion ip de la maquina
(aunque no recuerdo la funcion que regresa la ip de la maquina
cliente)

CREATE TABLE sanguijuelas (
usuario tipo_dato not null,
fecha timestamp not null
);

CREATE RULE no_a_las_sanguijuelas AS ON UPDATE TO tabla
WHERE NEW.usuario <> OLD.usuario
DO INSTEAD
INSERT INTO sanguijuelas VALUES (NEW.usuario, current_timestamp);

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Andres Ortiz 2005-12-02 16:59:18 Re: Seguridad en tablas
Previous Message Manuel Sugawara 2005-12-02 16:14:03 Re: Seguridad en tablas