Ver Mensaje Individual
  #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!!