1

Temat: Monitorowanie zdarzeń

Cześć wszystkim

Ze względów bezpieczeństwa muszę "wyłapywać" pewne zdarzenia na bazie danych, które potem będą przekazywane dalej i analizowane przez system do wykrywania nieprawidłowości. Do tych zdarzeń należą:
1. operacje DDL - create, alter, drop
2. logowania(w tym nieudane próby), wylogowania
3. nadawanie uprawnień grant/revoke
4. restart bazy danych

Mam coś takiego zrobione już dla baz ORACLE - tam jest to bardzo proste gdyż ORACLE dla każdego z powyższych zdarzeń pozwala zdefiniować trigger i odpowiednie info zapisać w tabeli. Teraz muszę w analogiczny sposób podłączyć bazy postgresowe. Z tego co czytałem od wersji 9.3 "weszly" event_triggery ale jest to dość mocno ograniczone. Wyczytałem też że postgres nie loguje historii SQL'i w tabelach systemowych, które ewentualnie mógłbym potem "przeczesać" w poszukiwaniu tych, które mnie interesują. Czy może da się to załatwić jakimś audytem ?

Bardzo proszę o jakieś pomysły

pozdrawiam

2

Odp: Monitorowanie zdarzeń

3

Odp: Monitorowanie zdarzeń

Suuuuper!
Dzięki ogromne Michał, zabieram się do lektury.

4

Odp: Monitorowanie zdarzeń

Ok, włączyłem audyt oraz logowania zdarzeń i podłączyłem to pod foreign table.
Jedyne czego mi brakuje to nazwa użytkownika i hosta zdalnego. Z tego co widzę postgres daje tylko informację o adresie IP i sockecie z którego było połączenie. Czy jest jakaś możliwość uzyskania takiej informacji czy to jest nie do przeskoczenia?

5

Odp: Monitorowanie zdarzeń

wszystko co można wyciągnąć z logów masz opisane w pliku postgresql.conf
Ciebie chyb najbardziej będą interesowały parametry:
log_connnetions = on
log_disconnetions = on
log_hostname = on
i powinieneś poczytać o log_line_prefix

PS O ile dobrze pamiętam każda zmiana powoduje,konieczność zmiany tabeli obcej do pliku z logami, bo zmienia się ilość i kolejność kolumn