Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аудит команд / 25 сообщений из 26, страница 1 из 2
26.09.2015, 21:50:18
    #39062127
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
Доброго времени суток форумчане ! Задачу поставили сделать аудит изменений конкретных таблиц,так чтоб ни один из девелоперов не смог бы обойти его т.к менеджер боится что кто-то может изменить какието данные рукой в таблице. Сделал тригера (AFTER DELETE,BEFORE UPDATE,AFTER UPDATE) выглядят примерно так :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TRIGGER tr_on_aft_update AFTER UPDATE on test_tbl FOR EACH ROW
BEGIN
declare _username varchar(150);

SELECT USER() INTO _username;

insert into audit.audit_user_changes(username,change_date,changes)
values(_username,NOW(), CONCAT('After change balance: ',new.balance,'| After change some_data: ', new.some_data));

END; $$



Создал базу audit где только дал права на select юзеру менеджера.Проблема в том что у некоторых девелоперов есть права SUPER и они могут дропнут тригер -> изменить значение в таблице -> создать тригер заново. Можно както записать в аудит базу все drop и create команды ? (например в других СУБД можно сделать DDL тригером). На крайняк можно отобрать права SUPER но хочеться сделать так чтоб они не знали что за ними следят.
...
Рейтинг: 0 / 0
26.09.2015, 22:02:52
    #39062136
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77Проблема в том что у некоторых девелоперов есть права SUPER и они могут дропнут тригер -> изменить значение в таблице -> создать тригер заново.Отобрать. Делов-то...
...
Рейтинг: 0 / 0
26.09.2015, 22:16:03
    #39062144
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
AkinaNewBie77Проблема в том что у некоторых девелоперов есть права SUPER и они могут дропнут тригер -> изменить значение в таблице -> создать тригер заново.Отобрать. Делов-то...

Ну отобрать это последнее дело
...
Рейтинг: 0 / 0
27.09.2015, 11:31:55
    #39062291
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
UP ! Тема актуальна.

Как записать в таблицу все DROP и CREATE команды ?
...
Рейтинг: 0 / 0
27.09.2015, 12:20:11
    #39062315
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
...
Рейтинг: 0 / 0
27.09.2015, 12:27:15
    #39062321
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77,

Selecting General Query and Slow Query Log Output Destinations

Но он не сильно будет грузить базу ?


Кто нибудь использовал McAfee audit plugin ? Поделитесь опытом
...
Рейтинг: 0 / 0
27.09.2015, 12:44:09
    #39062333
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77miksoftNewBie77,

Selecting General Query and Slow Query Log Output Destinations

Но он не сильно будет грузить базу ?Сильно/не сильно - тут покажет только эксперимент. Зависит от того, какие запросы в базе выполняются. Если будет сильно, то пишите в файл, оно должно быть легче.
...
Рейтинг: 0 / 0
27.09.2015, 12:46:14
    #39062337
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77пропущено...


Но он не сильно будет грузить базу ?Сильно/не сильно - тут покажет только эксперимент. Зависит от того, какие запросы в базе выполняются. Если будет сильно, то пишите в файл, оно должно быть легче.

Спасибо за совет. Думаю проще будет отнять права SUPER
...
Рейтинг: 0 / 0
27.09.2015, 12:50:20
    #39062341
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77Думаю проще будет отнять права SUPERА что сложного в команде SET GLOBAL general_log = 'ON' ?
...
Рейтинг: 0 / 0
27.09.2015, 12:54:25
    #39062345
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77Думаю проще будет отнять права SUPERА что сложного в команде SET GLOBAL general_log = 'ON' ?

В команде нет ничего сложного вот только база платежных систем и запросов там уйма, думаю сильно загрузит базу. Хотя поэксперементировать можно.
...
Рейтинг: 0 / 0
27.09.2015, 12:56:17
    #39062346
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77miksoftпропущено...
А что сложного в команде SET GLOBAL general_log = 'ON' ?

В команде нет ничего сложного вот только база платежных систем и запросов там уйма, думаю сильно загрузит базу. Хотя поэксперементировать можно.Нет, если запись будет файл, то вряд ли даже почувствуете на общем фоне.
...
Рейтинг: 0 / 0
27.09.2015, 12:59:55
    #39062347
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77пропущено...


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

Спасибо еще раз .
...
Рейтинг: 0 / 0
28.09.2015, 10:04:19
    #39062860
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77пропущено...


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

Искал в гугле но не нашел, можно отфильтровать что записать в general log а что нет ? Например мне нужно только записывать DROP и CREATE
...
Рейтинг: 0 / 0
28.09.2015, 10:21:44
    #39062875
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77можно отфильтровать что записать в general log а что нет ? Например мне нужно только записывать DROP и CREATEНет, насколько я в курсе.
...
Рейтинг: 0 / 0
28.09.2015, 14:40:47
    #39063139
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77можно отфильтровать что записать в general log а что нет ? Например мне нужно только записывать DROP и CREATEНет, насколько я в курсе.

Еще один вопрос который логически не смог связать.

Есть юзер и пароль для приложения которая подключается к базе. Изменения этим приложением в базе мне не интересны, интересно только если девелопер подключится этим юзером и паролем и изменит данные. Можно как-то различить изменения девелопером и приложением ? IP у обоих одинаковое при
Код: sql
1.
 SELECT USER()

по идее выдаст user@ip одинаковое для обоих случаев.
...
Рейтинг: 0 / 0
29.09.2015, 07:36:30
    #39063714
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77miksoftNewBie77,

Selecting General Query and Slow Query Log Output Destinations

Но он не сильно будет грузить базу ?


Поделитесь опытом


грузить будет, но не очень сильно.
у тебя собственно выбора то нет. будет грузить, не будет грузить.... -- раз тебе это надо, надо включать.

ты можешь либо использовать готовое решение на журнале всех заросов , либо сделать свое на триггера. первое быстро делается, относительно быстро работает, но его плохо настраивать и плохо расширять. второе делать надо долго, но зато ты будешь делать только то, что тебе надо, работать это будет уже на уровне Бд и sql/pl, а значит, медленнее, но возможно за счет того, что ты будешь открывать только нужные измерения, быстрее. эти данные будет легко разобрать и работать с ними.

мне кажется, что это желание - блаж менеджеров, в первую очередь.
надо обрезать правами доступ к нужным данным до только необходимых, и включить иллюзий лог запросов. если подконтрольных данных мало, или общий лог не удастся настроить так, чтобы минимизировать его объем, то надо спешно делать решение на триггера.
...
Рейтинг: 0 / 0
29.09.2015, 09:29:40
    #39063801
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
MasterZivNewBie77пропущено...


Но он не сильно будет грузить базу ?


Поделитесь опытом


грузить будет, но не очень сильно.
у тебя собственно выбора то нет. будет грузить, не будет грузить.... -- раз тебе это надо, надо включать.

ты можешь либо использовать готовое решение на журнале всех заросов , либо сделать свое на триггера. первое быстро делается, относительно быстро работает, но его плохо настраивать и плохо расширять. второе делать надо долго, но зато ты будешь делать только то, что тебе надо, работать это будет уже на уровне Бд и sql/pl, а значит, медленнее, но возможно за счет того, что ты будешь открывать только нужные измерения, быстрее. эти данные будет легко разобрать и работать с ними.

мне кажется, что это желание - блаж менеджеров, в первую очередь.
надо обрезать правами доступ к нужным данным до только необходимых, и включить иллюзий лог запросов. если подконтрольных данных мало, или общий лог не удастся настроить так, чтобы минимизировать его объем, то надо спешно делать решение на триггера.

Вот одна проблема у меня которую логически связать не смог.

Есть юзер и пароль для приложения которая подключается к базе. Изменения этим приложением в базе мне не интересны, интересно только если девелопер подключится этим юзером и паролем и изменит данные. Можно как-то различить изменения девелопером и приложением ? IP у обоих одинаковое при
Код: sql
1.
 SELECT USER()


по идее выдаст user@ip одинаковое для обоих случаев.

Думаю не возможно различить
...
Рейтинг: 0 / 0
29.09.2015, 09:55:01
    #39063835
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77IP у обоих одинаковоеПочему? У вас девелоперы и юзеры работают с одного компа? Или все сидят за общим NAT-ом?
...
Рейтинг: 0 / 0
29.09.2015, 09:59:24
    #39063842
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77IP у обоих одинаковоеПочему? У вас девелоперы и юзеры работают с одного компа? Или все сидят за общим NAT-ом?
Если со своего компа запустят то будут разные IP , а если с сервера запустят где сама апликация каким - нибудь PHP скриптом то IP будт сервера, или я ошибаюсь ?
...
Рейтинг: 0 / 0
29.09.2015, 10:00:47
    #39063844
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77,

вам надо как-то в приложении определять имя ПК, с которого выполняется вход и фиксировать,
другого вроде бы не дано.
...
Рейтинг: 0 / 0
29.09.2015, 10:06:59
    #39063853
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77если с сервера запустят где сама апликация каким - нибудь PHP скриптомВы используете термин "приложение", которое как-то не очень применимо к PHP-скриптам в моем представлении. У меня оно ассоциируется с десктопными приложениями.
...
Рейтинг: 0 / 0
29.09.2015, 10:11:57
    #39063862
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77,

Если девелоперы вольны править приложение как угодно и, одновременно, им нет доверия, то, имхо, выход один - переходить на хранимые процедуры или еще какое-то промежуточное звено между ними и таблицами. И эти процедуры/звено должны контролировать права конкретного девелопера (если они различаются по правам)., вести лог операций и т.п. А прямой доступ к таблицам (или даже всей базе) запретить полностью.
...
Рейтинг: 0 / 0
29.09.2015, 10:12:16
    #39063865
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77если с сервера запустят где сама апликация каким - нибудь PHP скриптомВы используете термин "приложение", которое как-то не очень применимо к PHP-скриптам в моем представлении. У меня оно ассоциируется с десктопными приложениями.
Там веб приложение. Пользователь может зайти на сайт ,зарегистрироваться и заплатить то что ему нужно(комунальные,пополнить счет и т.д) типа веб терминала.
...
Рейтинг: 0 / 0
29.09.2015, 14:48:44
    #39064243
NewBie77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
miksoftNewBie77,

Если девелоперы вольны править приложение как угодно и, одновременно, им нет доверия, то, имхо, выход один - переходить на хранимые процедуры или еще какое-то промежуточное звено между ними и таблицами. И эти процедуры/звено должны контролировать права конкретного девелопера (если они различаются по правам)., вести лог операций и т.п. А прямой доступ к таблицам (или даже всей базе) запретить полностью.

Создал хранимую процедуру(где делается инсерт и селект) и юзера с правами только на EXECUTE. Вызываю этим юзером хранимку и все отлично работает. Я новый в mysql больше работал с sql server-ом и там только EXECUTE прав не хватает нужны еще права на селект и инсерт ,а в mysql это не так ?
...
Рейтинг: 0 / 0
29.09.2015, 15:29:19
    #39064298
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аудит команд
NewBie77Создал хранимую процедуру(где делается инсерт и селект) и юзера с правами только на EXECUTE. Вызываю этим юзером хранимку и все отлично работает. Я новый в mysql больше работал с sql server-ом и там только EXECUTE прав не хватает нужны еще права на селект и инсерт ,а в mysql это не так ?Это зависит от того, какой был указан SQL SECURITY при создании процедуры.
Если DEFINER, то процедура имеет права создавшего ее. Именно этот вариант вам и нужен. И он же является вариантом по умолчанию.
Если INVOKER, то процедура имеет права вызвавшего ее.
Подробности - см. http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аудит команд / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]