El uso de disparadores no estaría mal, estoy seguro que MySQL ha de manejar alguna función o variable para determinar que usuario está ejecutando la operación (en Firebird es
Current_User). ¿No será que utilizas el mismo usuario de MySQL para todos los que trabajan con la aplicación?
Una alternativa del lado de Delphi es redefinir unos cuantos métodos de los componentes de acceso a datos, para "interceptar" todos los
Inserts,
Updates y
Delete). ¿Qué tipos de objetos usas para llevar a cabo estas operaciones?
Saludos.