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

Poner usuario en un Trigger

Estas en el tema de Poner usuario en un Trigger en el foro de Mysql en Foros del Web. Hola!! Necesito uno vez más ayuda de ustedes, por favor!! Mi problema es que necesito realizar una auditoría en mysql, esta auditoría la realizo a ...
  #1 (permalink)  
Antiguo 18/07/2011, 22:16
cym
 
Fecha de Ingreso: marzo-2011
Mensajes: 46
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Poner usuario en un Trigger

Hola!! Necesito uno vez más ayuda de ustedes, por favor!! Mi problema es que necesito realizar una auditoría en mysql, esta auditoría la realizo a través de triggers y los datos se guardan en una tabla llamada auditoria, en cuál tiene los siguientes campos:
Código MySQL:
Ver original
  1. CREATE TABLE `auditoria` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `nombre` varchar(100) DEFAULT NULL,
  4.   `tabla` varchar(100) DEFAULT NULL,
  5.   `usuario` varchar(10) DEFAULT NULL,
  6.   `terminal` varchar(40) DEFAULT NULL,
  7.   `fecha` datetime DEFAULT NULL,
  8.   PRIMARY KEY (`id`)
el 'id' se incrementa solo, 'nombre' guarda la acción (si es Alta, Baja o Modificación), 'tabla' en la tabla de mi base de datos que se hizo la acción, 'usuario' que es el usuario que entró a la aplicación web, 'terminal' para saber desde donde entró (no es muy importante), y 'fecha' para saber día y hora que se realizó.

También les dejo un ejemplo de un trigger
Código MySQL:
Ver original
  1. CREATE DEFINER='root'@`localhost` TRIGGER `at_Aservicios` BEFORE INSERT ON `servicios`
  2.     INSERT INTO audit (nombre, tabla, usuario, terminal, fecha)
  3.     VALUES ('Alta', 'Tabla Servicios', ¿¿¿usuario???, CURRENT_USER(), NOW());
  4.   END;

Mi problema está en que no se como poner en el trigger para que me guarde el nombre del usuario (en el triger está ¿¿¿usuario???) que entro en la aplicación web que la estoy realizando en php con variables de session, a estos usuarios lo tengo en otra tabla llamada “usuarios”
Código MySQL:
Ver original
  1. CREATE TABLE `usuarios` (
  2.   `id_usuario` int(11) NOT NULL AUTO_INCREMENT,
  3.   `IdRol` int(11) NOT NULL,
  4.   `nombre` varchar(100) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  5.   `apellido` varchar(50) NOT NULL,
  6.   `correo` varchar(100) NOT NULL,
  7.   `user` varchar(50) NOT NULL,
  8.   `pass_js` varchar(100) NOT NULL,
  9.   `pass_php` varchar(100) NOT NULL,
  10.   `fecha` date NOT NULL,
  11.   `estado` varchar(50) DEFAULT NULL,
  12.   PRIMARY KEY (`id_usuario`,`IdRol`),
  13.   KEY `IdRol` (`IdRol`)

No sé si habrá alguna función en mysql que me devuelva el usuario (como por ejemplo NOW()--> me devuelve fecha y hora de la cuál se hizo la operación).
Desde ya muchas gracias!!
  #2 (permalink)  
Antiguo 19/07/2011, 14:21
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Poner usuario en un Trigger

Que tal !!!


Estas hablando del usuario con el que se logearon en la aplicacion web o del usuario con el que la aplicacion web accede a la bd ?


Saludos.
__________________
Dejenme saber cuando estoy equivocado y cuando estoy en lo cierto dejenme saber si existe una solución mejor.
  #3 (permalink)  
Antiguo 19/07/2011, 17:44
cym
 
Fecha de Ingreso: marzo-2011
Mensajes: 46
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Poner usuario en un Trigger

Hola!!! Sería el usuario con el que se logearon en la aplicación web, ese usuario está almacenado en la tabla "usuarios".
O sea para acceder a las funciones de la aplicación web se debe loguear, chequea en la base de datos que se encuentre ese usuario y comienza a mantenerse en las diferentes páginas el mismo usuario con las variable de sesión en php. Espero que se entienda mejor ahora. Saludos y Gracias!!!

Etiquetas: php, usuarios, variables_de_sesion, trigger
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 12:51.