Задавайте вопросы, мы ответим
Вы не зашли.
Немножко раскидав мысли в голове возник вопрос - "...а нет ли такой возможности как узнать от какого IP к серверу БД пришел запрос?"
Требуется в запросах на insert, update протоколировать в БД с какой машины было произведено действие.
Объясните можно ли как-то получать эту информацию.
OS: WinXP
MySQL: 5.1
Неактивен
Конкретно IP — нет, такой возможности нету. Однако, Вы можете завести отдельно пользователей
для каждого IP, с которого разрешен доступ, и смотреть на имена пользователей:
[aquatica] root (none) > select current_user;
+----------------+
| current_user |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
Ну и к INSERT/UPDATE, соответственно, прописать триггеры, которые будут логировать эту строку.
Неактивен
К сожалению создавать пользователя для каждого отдельного IP не получится, ибо это будет не эффективно (с точки срения по от имени которого будут выполняться действия на сервере) и трудности переносимости программой среды на такой новый уклад-кофиг.
в общем, жаль, очень жаль... придется делать программными средствами.
Неактивен
Честно говоря, не понял, что тут не эффективно: клиент все равно подключается
под тем же самым пользователем, тут вовлечена только серверная сторона.
--
Подумал, что в MySQL 5.1 можно получить адрес и другим способом:
SELECT HOST FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = CONNECTION_ID();
Ну или SHOW PROCESSLIST, но его вывод в триггере не запишешь...
Неактивен
paulus
Спасибо, второй вариант как раз то, что надо.
Неактивен