![]() ![]() |
![]() |
![]() |
Ссылка на пост #1 |
Командор ХХХ
![]() ![]() ![]() ![]() ![]() ![]() ![]() Скрипт-киддис на пенсии
![]() ![]() Сообщений: 3,138 На форуме с: 17.05.04
Провел: 1мес. 2нед. 5д. 3ч. 21мин. |
Mysql - логгирование запросов с заданных IP
В общем есть такая ситуация. Есть база данных mysql, есть набор пользователей с различными айпишниками, которым надо предоставить доступ в базу данных напрямую. Задача в том, чтобы получить возможность логгирования запросов, выполняемых пользователями с конкретных IP. При этом логгировать все запросы не хотелось бы по соображениям производительности. Удаленные юзеры (по идее) должны лишь изредка обращаться к базе и ради них врубать полное логгирование совсем не хочется. Вроде в доках мускуля про логгирование запросов только с определенных хостов ничего не говорят :-( Мож кто сталкивался с подобной задачей и подскажет грамотное решение?
|
![]() ![]() |
![]() |
![]() |
Ссылка на пост #2 |
Модератор
![]() ![]() ![]() ![]() ![]() Живой человек
Сообщений: 1,947 На форуме с: 11.03.02
Провел: 1нед. 5д. 11ч. 51мин. |
Цитата: > Undamned пишет: Вроде в доках мускуля про логгирование запросов только с определенных хостов ничего не говорят :-( Мож кто сталкивался с подобной задачей и подскажет грамотное решение? До мускула они как идут? Поставить лог запросов с этих ip на firewall реально? |
![]() ![]() |
![]() ![]() |
![]() |
Ссылка на пост #3 |
W&P Team
![]() ![]() ![]() ![]() ![]() фсе поменялось
Сообщений: 10,243 На форуме с: 07.04.03
Провел: 2мес. 2нед. 6д. 22ч. 56мин. |
Вопрос дополнительный, а пользователи с каким софтом работают? Т.е. тут 2 варианта:
1. Пользователи работают со скриптом на сервере, который в свою очередь отправляет запросы к MySQL 2. Пользователи работают с локальным софтом, который напрямую обращается к MySQL Вопрос почему стоит, в первом случае IP всегда будет либо локальный либо адрес сервера, где находится скрипт... а вот во втором случае IP будет для каждого пользователя свой. В любом случае реальный способ решения - делать триггер, который будет реагировать на активность + будет сравнивать IP и в случае удачи будет писать запрос + IP адрес в отдельную табличку. Ну это то, как бы сделал это я. |
![]() ![]() |
![]() |
![]() |
Ссылка на пост #4 |
Командор ХХХ
![]() ![]() ![]() ![]() ![]() ![]() ![]() Скрипт-киддис на пенсии
![]() ![]() Сообщений: 3,138 На форуме с: 17.05.04
Провел: 1мес. 2нед. 5д. 3ч. 21мин. |
Smithson: Про фаер я первым делом подумал, но в данном случае по ряду причин это не вариант.
barabashka: Пользователи работают со скриптами у себя на локале и эти скрипты должны тягать инфу с сервака баз данных, где мне нужно поставить логгирование. Иногда в принципе им может понадобиться напрямую соваться в базу дабы там что-то подправить, но это маловероятный вариант. |
![]() ![]() |
![]() |
![]() |
Ссылка на пост #5 |
W&P Team
![]() ![]() ![]() ![]() ![]() фсе поменялось
Сообщений: 10,243 На форуме с: 07.04.03
Провел: 2мес. 2нед. 6д. 22ч. 56мин. |
Для MySQL есть функция
CURRENT_USER, CURRENT_USER() Цитата: dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user > Посмотри что возвращает функция, если тебе это подходит, то дальше просто пиши триггер.Returns the user name and host name combination for the MySQL account that the server used to authenticate the current client Впринципе то же самое написано и на форуме: forums.mysql.com/read.php?99,137330,137330 Тоже предлагается сделать триггер. На самом деле другого способа я не знаю, вроде сам мускуль может либо тупо логировать все, либо не логировать вобще, а все расширенные логи реализуются путем написания триггеров - опять же могу ошибаться. Ну а это уже с форума скоммуниздил, если нужен только IP адрес: Код:
SELECT SUBSTRING_INDEX(current_user(), '@', -1); --- Если же результат той функции не подходит, то чуток подправить скрипт, что бы он к каждому запросу добавлял IP адрес, ну и снова писать триггер, который будет логировать все запросы, в теле которых искомый тебе IP адрес. |
![]() ![]() |
![]() |
![]() |
Ссылка на пост #6 |
Командор ХХХ
![]() ![]() ![]() ![]() ![]() ![]() ![]() Скрипт-киддис на пенсии
![]() ![]() Сообщений: 3,138 На форуме с: 17.05.04
Провел: 1мес. 2нед. 5д. 3ч. 21мин. |
barabashka: Спасиб, попробую подразобраться. Не совсем то, что нужно, но лучше чем ничего или полное логгирование.
|
![]() ![]() |
![]() |