Re: Ayuda con los campos de auditoria

From: jlcambero <jlcambero(at)emergya(dot)es>
To: "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con los campos de auditoria
Date: 2007-06-20 13:59:55
Message-ID: 200706201559.55862.jlcambero@emergya.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El Miércoles, 20 de Junio de 2007 14:53, Raul Andres Duque escribió:
> Recuerda enviar copia a la lista ...
>
> Creo que estas haciendo algo mal ... estas usando "create temp table" ??
>
> Hice la siguiente prueba:
>
> *** SESION 1 (logeado con usuario postgres) ***
> postgres=# create temp table prueba(i int);
> CREATE TABLE
> postgres=# \d
> List of relations
> Schema | Name | Type | Owner
> -----------+--------+-------+----------
> pg_temp_1 | prueba | table | postgres
> (1 row)
>
> *** SESION 2 (logueado con el usuario prueba "al mismo tiempo que sesion
> 1") ***
> postgres=> create temp table prueba(i int);
> CREATE TABLE
> postgres=> \d
> List of relations
> Schema | Name | Type | Owner
> -----------+--------+-------+--------
> pg_temp_2 | prueba | table | prueba
> (1 row)
>
> Cómo vez, cree la misma tabla temporal en dos sesiones independientes y con
> diferentes usuarios ... pensaría que la "clave" esta en que postgresql las
> crea en diferentes esquemas.
>
> Atentamente,
>
> RAUL DUQUE
> Bogotá, Colombia
>
> ----- Original Message -----
> From: "jlcambero" <jlcambero(at)emergya(dot)es>
> To: "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx>
> Sent: Wednesday, June 20, 2007 6:55 AM
> Subject: Re: [pgsql-es-ayuda] Ayuda con los campos de auditoria
>
> El Martes, 19 de Junio de 2007 20:41, escribió:
> > Una alternativa es que crees al iniciar cada sesion una tabla TEMPORAL
> > con la info del usuario "logueado" en tu aplicación y generas triggers
> > para actualizar una tabla de auditoria o unos campos en la tabla
> > principal que te indiquen quien inserto/actualizó y a que horas.
>
> Esta es la idea que tenia en mente.
> Estoy probando... dentro de una función que se encarga de comprobar los
> datos
> del login, si el login es correcto creo una tabla temporal y almaceno los
> datos que necesito del usuario.
> Ahora el problema, al logearse otro usuario, no me deja volver a crear la
> tabla temporal con el mismo nombre, cosa que si me permite si creo la tabla
> en dos sesiones distintas con el mismo usuario, pero no dentro de una
> función.
> ¿Alguna sugerencia?
>
> > Otra alternativa (aunque en la mayoría de los casos puede no aplicar), es
> > que almacenes la ip del usuario que se conecta, esto lo obtienes con una
> > función, aunque depende de que los usuarios SOLO se puedan loguear desde
> > sus propias máquinas.
> >
> > Otra alternativa es que en tu capa de acceso a datos, interceptes los
> > update/inserts y llenes los campos correspondientes y/o tabla de
> > auditoria.
>
> Esa alternativa prefiero dejarla como ultima opción, la idea es hacerlo a
> base
> de triggers.
>
> > Atentamente,
>
> Gracias, un saludo
>
> > RAUL DUQUE
> > Bogotá, Colombia
> >
> >
> > ----- Original Message -----
> > From: "jlcambero" <jlcambero(at)emergya(dot)es>
> > To: <pgsql-es-ayuda(at)postgresql(dot)org>
> > Sent: Tuesday, June 19, 2007 1:05 PM
> > Subject: [pgsql-es-ayuda] Ayuda con los campos de auditoria
> >
> >
> > Buenas lista,
> > estamos desarrollando una aplicación, con hibernate / postgreSql, dicha
> > aplicación conecta con la base de datos con un usuario, pero en la
> > aplicación
> > hay muchos usuarios distintos que no lo son de la base de datos.
> >
> > Ahora queremos mantener un control de quien inserta o actualiza un
> > registro, rellenando campos de auditoria (creado, modificado, y sus
> > respectivas fechas), a base de triggers pero no se como puedo identificar
> > que usuario es el que manda cada query.
> >
> > El chico que esta trabajando con hibernate no sabe tampoco muy bien como
> > hacerlo y yo de hibernate no tengo ni idea.
> >
> > Espero vuestras ideas/sugerencias.
> >
> > Gracias, un saludo
> >
> > Jose Luis Cambero Contador
> > Emergya, Consultoría e Ingeniería
> > Avda. de la Innovación, 3. Edif. Hércules.
> > 41020 - Sevilla
> > Tel. +34 954 51 75 77
> > Fax. +34 954 51 64 73
> > http://www.emergya.info
> > --
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
> > http://archives.postgresql.org/pgsql-es-ayuda

Si, uso temp table, como dije ante el problema está en que la creo dentro de
una función, que en sesiones distintas con el mismo usuario si me deja y
funciona sin problemas.

Un saludo

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-06-20 14:05:20 Re: Ayuda con los campos de auditoria
Previous Message Agustin Casiva 2007-06-20 13:44:49 Re: Acceso a una base de datos postgresql desde un AS/400