identificar usuario con registro en una tabla

Started by Milton Galo Patricioover 19 years ago5 messagesgeneral
Jump to latest
#1Milton Galo Patricio
minoztro@gmail.com

estimad@s:

He buscado en la documentación (de forma parcial) y no he podido
encontrar alguna sentencia o comando que me pueda retornar el nombre
del usuario que realizo un insert en una determinada tabla (pero de
forma historica), me explico:

1.- En el momento que se ingresa un registro se que puedo saber quien
lo está haciendo (a través de un trigger o simplemente consultando la
session activa).

2.- Pero en una tabla cuando realizo un select como puedo saber que
usuarios han ingresado cada uno de los registros?

Lo anterior se quiere saber para realizar consultas de forma
historica....lo que he estado pensando es hacer un trigger y que se
dispare despues de haber ingresado la tupla y guarde en esa misma
tupla el nombre del usuario (pero me gustaría saber si se puede hacer
de la forma que estoy planteando en el punto dos, es algo parecido a
los ficheros de linux, cuando se crean quedan con la identificación
del propietario).

Espero haberme explicado, saludos

--
Milton Inostroza Aguilera

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Milton Galo Patricio (#1)
Re: identificar usuario con registro en una tabla

Milton Galo Patricio escribi�:

Lo anterior se quiere saber para realizar consultas de forma
historica....lo que he estado pensando es hacer un trigger y que se
dispare despues de haber ingresado la tupla y guarde en esa misma
tupla el nombre del usuario (pero me gustar�a saber si se puede hacer
de la forma que estoy planteando en el punto dos, es algo parecido a
los ficheros de linux, cuando se crean quedan con la identificaci�n
del propietario).

Es facil de implementar con triggers. Incluso puedes encontrar ejemplos
de codigo ya construido. Generalmente se le llama "auditoria" (audit en
ingles) sobre una tabla.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

#3Alejandro D. Burne
alejandro.dburne@gmail.com
In reply to: Milton Galo Patricio (#1)
Re: [pgsql-es-ayuda] identificar usuario con registro en una tabla

2006/10/24, Milton Galo Patricio <minoztro@gmail.com>:

estimad@s:

He buscado en la documentación (de forma parcial) y no he podido
encontrar alguna sentencia o comando que me pueda retornar el nombre
del usuario que realizo un insert en una determinada tabla (pero de
forma historica), me explico:

1.- En el momento que se ingresa un registro se que puedo saber quien
lo está haciendo (a través de un trigger o simplemente consultando la
session activa).

2.- Pero en una tabla cuando realizo un select como puedo saber que
usuarios han ingresado cada uno de los registros?

Lo anterior se quiere saber para realizar consultas de forma
historica....lo que he estado pensando es hacer un trigger y que se
dispare despues de haber ingresado la tupla y guarde en esa misma
tupla el nombre del usuario (pero me gustaría saber si se puede hacer
de la forma que estoy planteando en el punto dos, es algo parecido a
los ficheros de linux, cuando se crean quedan con la identificación
del propietario).

Espero haberme explicado, saludos

--
Milton Inostroza Aguilera

Una alternativa es que agregues un campo tipo char o varchar con valor por

defecto "USER" para los insert y un trigger para los update;
alternativamente otro datetime para registrar fecha y hora de las
modificaciones.

Alejandro

Alejandro

#4Alejandro D. Burne
alejandro.dburne@gmail.com
In reply to: Milton Galo Patricio (#1)
Re: identificar usuario con registro en una tabla

2006/10/25, Milton Galo Patricio <minoztro@gmail.com>:

Una alternativa es que agregues un campo tipo char o varchar con valor

por

defecto "USER" para los insert y un trigger para los update;

prodías mostrar la forma de hacerlo con el insert?, se te agradecería
mucho.

alternativamente otro datetime para registrar fecha y hora de las
modificaciones.

Alejandro

Alejandro

--
Milton Inostroza Aguilera

create temporary table temporal
(campo1 int,
campo2 char(10),
usuario varchar(20) default USER,
fechahora timestamp default NOW());

INSERT INTO temporal (campo1,campo2) VALUES (1,'UNO');

SELECT * FROM temporal;

#5Linder Poclaba
linder.poclaba@gmail.com
In reply to: Milton Galo Patricio (#1)
Re: identificar usuario con registro en una tabla

2006/10/24, Milton Galo Patricio <minoztro@gmail.com>:

estimad@s:

He buscado en la documentación (de forma parcial) y no he podido
encontrar alguna sentencia o comando que me pueda retornar el nombre
del usuario que realizo un insert en una determinada tabla (pero de
forma historica), me explico:

1.- En el momento que se ingresa un registro se que puedo saber quien
lo está haciendo (a través de un trigger o simplemente consultando la
session activa).

en un trigger puedes utilizar la variable current_user(que seria el usuario
quien está insertando, actualizando, borrando en tu tabla.) e insertarlo en
otra tabla llamada bitacora o algo así, con mas info, como el nombre de la
tabla a que hora el ip de donde se conecto el usuario etc.

--
Linder Poclaba Lázaro.
Desarrollador Key Optimal Solutions - KEYOS.
Usa Software Libre y obtiene tú libertad.