Вернуться   W&PBBS > Software > Unix/Linux/BSD
Имя
Пароль
FAQ Пометить все разделы прочитанными



Ответ
Опции темы
Старый 12-12-2009, 16:43 Ссылка на пост    #1
Undamned
Командор ХХХ
Скрипт-киддис на пенсии
 
Undamned
Почетный знак за заслуги в 2011-мЗа участие в акции "70 лет Победы"
На форуме с: 17.05.04
Провел: 1мес. 2нед. 5д. 3ч. 21мин.

Mysql - логгирование запросов с заданных IP

В общем есть такая ситуация. Есть база данных mysql, есть набор пользователей с различными айпишниками, которым надо предоставить доступ в базу данных напрямую. Задача в том, чтобы получить возможность логгирования запросов, выполняемых пользователями с конкретных IP. При этом логгировать все запросы не хотелось бы по соображениям производительности. Удаленные юзеры (по идее) должны лишь изредка обращаться к базе и ради них врубать полное логгирование совсем не хочется. Вроде в доках мускуля про логгирование запросов только с определенных хостов ничего не говорят :-( Мож кто сталкивался с подобной задачей и подскажет грамотное решение?
Undamned вне форума   Вставить выделенное      Ответить с цитированием
Старый 14-12-2009, 10:03 Ссылка на пост    #2
Smithson
Модератор
Живой человек
 
Smithson


Сообщений: 1,947
На форуме с: 11.03.02
Провел: 1нед. 5д. 11ч. 51мин.

Цитата: > Undamned пишет:
Вроде в доках мускуля про логгирование запросов только с определенных хостов ничего не говорят :-( Мож кто сталкивался с подобной задачей и подскажет грамотное решение?

До мускула они как идут? Поставить лог запросов с этих ip на firewall реально?
Smithson вне форума   Вставить выделенное Отправить сообщение для  Smithson с помощью ICQ      Ответить с цитированием
Старый 14-12-2009, 11:19 Ссылка на пост    #3
barabashka
W&P Team
фсе поменялось
 
barabashka


Сообщений: 10,243
На форуме с: 07.04.03
Провел: 2мес. 2нед. 6д. 22ч. 56мин.

Вопрос дополнительный, а пользователи с каким софтом работают? Т.е. тут 2 варианта:
1. Пользователи работают со скриптом на сервере, который в свою очередь отправляет запросы к MySQL
2. Пользователи работают с локальным софтом, который напрямую обращается к MySQL

Вопрос почему стоит, в первом случае IP всегда будет либо локальный либо адрес сервера, где находится скрипт... а вот во втором случае IP будет для каждого пользователя свой.

В любом случае реальный способ решения - делать триггер, который будет реагировать на активность + будет сравнивать IP и в случае удачи будет писать запрос + IP адрес в отдельную табличку.

Ну это то, как бы сделал это я.
barabashka вне форума   Вставить выделенное      Ответить с цитированием
Старый 14-12-2009, 14:53 Ссылка на пост    #4
Undamned
Командор ХХХ
Скрипт-киддис на пенсии
 
Undamned
Почетный знак за заслуги в 2011-мЗа участие в акции "70 лет Победы"
На форуме с: 17.05.04
Провел: 1мес. 2нед. 5д. 3ч. 21мин.

Smithson: Про фаер я первым делом подумал, но в данном случае по ряду причин это не вариант.

barabashka: Пользователи работают со скриптами у себя на локале и эти скрипты должны тягать инфу с сервака баз данных, где мне нужно поставить логгирование. Иногда в принципе им может понадобиться напрямую соваться в базу дабы там что-то подправить, но это маловероятный вариант.
Undamned вне форума   Вставить выделенное      Ответить с цитированием
Старый 14-12-2009, 15:08 Ссылка на пост    #5
barabashka
W&P Team
фсе поменялось
 
barabashka


Сообщений: 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 адрес.
barabashka вне форума   Вставить выделенное      Ответить с цитированием
Старый 14-12-2009, 15:14 Ссылка на пост    #6
Undamned
Командор ХХХ
Скрипт-киддис на пенсии
 
Undamned
Почетный знак за заслуги в 2011-мЗа участие в акции "70 лет Победы"
На форуме с: 17.05.04
Провел: 1мес. 2нед. 5д. 3ч. 21мин.

barabashka: Спасиб, попробую подразобраться. Не совсем то, что нужно, но лучше чем ничего или полное логгирование.
Undamned вне форума   Вставить выделенное      Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

vB коды Вкл.
[IMG] код Вкл.
Быстрый переход





Предупреждение: Никакого детского порно в запросах и ссылках.
Любое упоминание детского порно в контексте будет пресекаться.


Часовой пояс GMT +4, серверное время: 04:27.