powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аудит команд
26 сообщений из 26, показаны все 2 страниц
Аудит команд
    #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
Аудит команд
    #39062136
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewBie77Проблема в том что у некоторых девелоперов есть права SUPER и они могут дропнут тригер -> изменить значение в таблице -> создать тригер заново.Отобрать. Делов-то...
...
Рейтинг: 0 / 0
Аудит команд
    #39062144
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaNewBie77Проблема в том что у некоторых девелоперов есть права SUPER и они могут дропнут тригер -> изменить значение в таблице -> создать тригер заново.Отобрать. Делов-то...

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

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

Selecting General Query and Slow Query Log Output Destinations

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


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

Selecting General Query and Slow Query Log Output Destinations

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


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

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

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

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


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

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


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

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

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

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

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

Selecting General Query and Slow Query Log Output Destinations

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


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


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

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

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


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


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


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

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

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

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

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


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

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

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

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

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

Создал хранимую процедуру(где делается инсерт и селект) и юзера с правами только на EXECUTE. Вызываю этим юзером хранимку и все отлично работает. Я новый в mysql больше работал с sql server-ом и там только EXECUTE прав не хватает нужны еще права на селект и инсерт ,а в mysql это не так ?
...
Рейтинг: 0 / 0
Аудит команд
    #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
Аудит команд
    #39064306
NewBie77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftNewBie77Создал хранимую процедуру(где делается инсерт и селект) и юзера с правами только на EXECUTE. Вызываю этим юзером хранимку и все отлично работает. Я новый в mysql больше работал с sql server-ом и там только EXECUTE прав не хватает нужны еще права на селект и инсерт ,а в mysql это не так ?Это зависит от того, какой был указан SQL SECURITY при создании процедуры.
Если DEFINER, то процедура имеет права создавшего ее. Именно этот вариант вам и нужен. И он же является вариантом по умолчанию.
Если INVOKER, то процедура имеет права вызвавшего ее.
Подробности - см. http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html

Интересно . Спасибо за помощь !
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аудит команд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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