Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Auditoria para PostgreSQL usando php

Estas en el tema de Auditoria para PostgreSQL usando php en el foro de PostgreSQL en Foros del Web. hola amigos espero me puedan ayudar requiero hacer auditoria sobre las los insert ,update , delete de las tablas de la base de datos , ...
  #1 (permalink)  
Antiguo 24/10/2012, 17:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Auditoria para PostgreSQL usando php

hola amigos espero me puedan ayudar

requiero hacer auditoria sobre las los insert ,update , delete de las tablas de la base de datos , la aplicacion web que tengo se autentica sobre una tabla en la base de datos, trabajo con sesiones lo que no tengo claro tengo un usuario que ingresa pero las acciones en la base de datos las realiza
el usuario postgresql



Código SQL:
Ver original
  1. CREATE TABLE usuarios
  2. (
  3.   id_usuarios INTEGER NOT NULL DEFAULT NEXTVAL('usuarios_id_usuario_seq'::regclass),
  4.   nom_usuario CHARACTER(64),
  5.   nom_apellido CHARACTER(64),
  6.   usu_usuario CHARACTER(32),
  7.   usu_clave CHARACTER(32),
  8.   usu_telefono1 CHARACTER(100),
  9.   usu_telefono2 CHARACTER(100),
  10.   usu_correo CHARACTER(60),
  11.   usu_estado INTEGER,
  12.   perfil INTEGER,
  13.   CONSTRAINT usuarios_pkey PRIMARY KEY (id_usuarios)
  14. )


me pueden explicar un poco por favor

gracias
  #2 (permalink)  
Antiguo 25/10/2012, 07:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Auditoria para PostgreSQL usando php

Una cosa son los usuarios que tienes almacenados en la base de datos en la tabla usuarios y otra los usuarios de bases de datos. Para auditoria de datos lo mas conveniente es tener los usuarios de base de datos sincronizados con la aplicación web.

Cuando ejecutas
create user usuario WITH PASSWORD cualquiera;

Ya tienes un usuario de bases de datos y podrias hacer audotira mediante triggers para que te deje en una tabla log las operaciones que realiza ese usuario.

SI lo quieres hacer dese la aplicación web y con la tabla usuarios que creaste, te toca administrar las auditorias desde programación y no desde el motor de bases de datos como tal.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 25/10/2012, 10:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Auditoria para PostgreSQL usando php

huesos52 gracias por responder tengo una pregunta el usuario que creo es para todo el motor de la base de dato o solo para la base de datos?


Cuando ejecutas
create user usuario WITH PASSWORD cualquiera;
  #4 (permalink)  
Antiguo 25/10/2012, 10:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Auditoria para PostgreSQL usando php

Es para todo el motor de base de datos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 25/10/2012, 11:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Auditoria para PostgreSQL usando php

huesos52 gracias por responder , me podrias brindar un ejemplo de un trigger para hacer la auditoria

gracias
  #6 (permalink)  
Antiguo 25/10/2012, 11:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Auditoria para PostgreSQL usando php

Mira este link.
http://www.swapbytes.com/2010/09/com...simple-en.html

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 25/10/2012, 14:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Auditoria para PostgreSQL usando php

huesos tengo una pregunta


al incio de mi aplicacion tengo un formulario al cual tengo que ingresar usuario y clave

estuve probando estas consultas para probar

con esta cree mi usuario en la base de datos
create user montes with password 'miclave';

consulto los usuarios de la base de datos
select * from pg_user;

estoy realizando la validacion mediante
select * from pg_user WHERE usename = 'montes' AND passwd = 'miclave' ;

pero no me arroja ningun resultado porque?
  #8 (permalink)  
Antiguo 26/10/2012, 07:26
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Auditoria para PostgreSQL usando php

Por que pg_user almacena unicamente caracteres ******.
http://www.postgresql.org/docs/9.1/s...w-pg-user.html

El almacenamiento como tal se almacena en una tabla llamada pg_authid
http://www.postgresql.org/docs/9.1/s...pg-authid.html

En el link dan detalles exactos de la forma como se encriptan las contraseñas. Desde php deberias aplicar esta misma tecnica para que compare correctamente.

Nunca lo he hecho pero me imagino que debe ser por ese lado.

saludos

PD: Ya le pido a un moderador que mueva el tema a postgresql.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 26/10/2012, 07:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Auditoria para PostgreSQL usando php

huesos52 gracias por responder


estoy intentando implementar el codigo que me indicaste
http://www.swapbytes.com/2010/09/com...simple-en.html
http://www.swapbytes.com/2010/09/com...sesion-en.html

tengo una duda con la Función que permite definir una variable de sesión:

CREATE OR REPLACE FUNCTION set_session(session_name TEXT, session_value TEXT)
RETURNS VOID AS
$BODY$
BEGIN
PERFORM relname
FROM pg_class
WHERE relname = 'tbl_session'
AND CASE WHEN has_schema_privilege(relnamespace, 'USAGE')
THEN pg_table_is_visible(oid) ELSE false END;

IF not found THEN
CREATE TEMPORARY TABLE tbl_session (name TEXT, value TEXT);
ELSE
DELETE FROM tbl_session WHERE name = session_name;
END IF;

INSERT INTO tbl_session VALUES (session_name, session_value);
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;

tengo que tener una tabla tbl_session ?

ya cree la tabal tbl_audit,TRIGGER todo lo que se indica el la pimera parte , ya inserto , modifico y elimino y queda registrado en la tabla que audita pero todo con el usuario postgres
  #10 (permalink)  
Antiguo 26/10/2012, 08:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Auditoria para PostgreSQL usando php

amigos como encripta los password postgrsql 8.4?
  #11 (permalink)  
Antiguo 26/10/2012, 13:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Auditoria para PostgreSQL usando php

por consulta obtengo un registro

SELECT * from pg_shadow WHERE usename = 'montes' AND passwd = 'md57ae065d4f22d2b52395e5ae850407bd4'

como esta encriptada?

Etiquetas: auditoria, php, sql, tabla, usando, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:00.