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

Mysql y usuarios

Estas en el tema de Mysql y usuarios en el foro de Mysql en Foros del Web. Hola a todos, mi consulta es referente a si puedo saber que usuario accede (hace un update, un insert) en una tabla. Me explico: tengo ...
  #1 (permalink)  
Antiguo 28/09/2010, 03:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Mysql y usuarios

Hola a todos,

mi consulta es referente a si puedo saber que usuario accede (hace un update, un insert) en una tabla. Me explico:

tengo una aplicación que trabaja con php+mysql. Existen dos usuarios de mysql que pueden acceder a las tablas. ¿Puedo saber quien hace qué? Por ejemplo, uno de los dos usuarios hace un INSERT pues que se guardara en un campo el usuario que lo ha hecho (estilo del current_timestamp por ejemplo).

Hablo de usuarios con permisos de acceso al mysql, nada de usuarios que se validan en php en una aplicación o eso.

Espero haberme explicado

Un saludo!
  #2 (permalink)  
Antiguo 28/09/2010, 12:25
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Mysql y usuarios

Podrías crear un campo a la tabla para guardar el usuario y luego en un trigger actualizar dicho campo con el valor de CURRENT_USER()

http://dev.mysql.com/doc/refman/5.0/...n_current-user
  #3 (permalink)  
Antiguo 28/09/2010, 13:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Mysql y usuarios

Gracias!

Mañana probaré de crear el trigger y te digo algo.

Muchas gracias por la pronta respuesta

Un saludo!
  #4 (permalink)  
Antiguo 29/09/2010, 03:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Mysql y usuarios

Hola,

desde phpmyadmin 2.8.2.4, en el sitio de ejecución de SQL inserto el siguiente código:

CREATE TRIGGER upd_usuaris BEFORE UPDATE ON usuaris
FOR EACH ROW
BEGIN
SET NEW.qui_ho_fa = CURRENT_USER();
SET NEW.quant_ho_fa = NOW();
END;

y siempre recibo el mismo error:

Error

consulta SQL:

CREATE TRIGGER upd_usuaris BEFORE UPDATE ON usuaris FOR EACH ROW BEGIN SET NEW.qui_ho_fa = CURRENT_USER( ) ;

MySQL ha dicho:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

También probé de poner:

DELIMITER $$
CREATE TRIGGER upd_usuaris BEFORE UPDATE ON usuaris
FOR EACH ROW
BEGIN
SET NEW.qui_ho_fa = CURRENT_USER();
SET NEW.quant_ho_fa = NOW();
END$$
DELIMITER ;

y el error recibido es:

Error

consulta SQL:

DELIMITER $$ CREATE TRIGGER upd_usuaris BEFORE UPDATE ON usuaris FOR EACH ROW BEGIN SET NEW.qui_ho_fa = CURRENT_USER( ) ;

MySQL ha dicho:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$
CREATE TRIGGER upd_usuaris BEFORE UPDATE ON usuaris
FOR EACH ROW ' at line 1

y ya me pierdo!!! ¿Alguien puede ayudarme? Seguro que es tonto, pero soy novel en ello. Creo que el error pinta por las ";"?

Gracias

Última edición por xvilamanya; 29/09/2010 a las 04:03
  #5 (permalink)  
Antiguo 29/09/2010, 14:59
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Mysql y usuarios

Aquí tienes la respuesta. Es para crear un procedimiento almacenado, pero es lo mismo
http://www.forosdelweb.com/f86/como-...9/#post2852146
  #6 (permalink)  
Antiguo 30/09/2010, 04:36
 
Fecha de Ingreso: septiembre-2010
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Mysql y usuarios

Gracias,

en el hosting en cuestión, el phpmyadmin no tiene lo del delimiter. Ya he pedido un cambio de hosting o poder acceder como "super" a mysql y desde un software externo (ems SQL Manager for MySQL) gestionarlo todo.

Muchas gracias por la ayuda.

Etiquetas: 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 01:08.