Oracle - logowanie

PI
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:72
0

Witam wszystkich,

Chciałbym zrobić pewien "automat logujący" a mianowicie
każda operacja na tabeli/tabelach ma powodować wpis do innej, konkretnej, dedykowanej tabeli.
Np: "insert new record table: xxxxx date_time: 00:00:00"

można to rozwiązać triggerami ale nie chcę mieć dodatkowego triggera dla każdej tabeli
w której powstają zmiany.

Może ktoś ma pomysł ?
Pozdrawiam

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
0

Możesz zrobic procedury do operacji typu insert update delete i tam robić wpisy do tej tabeli audytowej albo trigger na każdej talbeli. Można zrobić prosty skrypt generujacy taki triggery

PI
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:72
0
Tomek Pycia napisał(a):

Możesz zrobic procedury do operacji typu insert update delete i tam robić wpisy do tej tabeli audytowej albo trigger na każdej talbeli. Można zrobić prosty skrypt generujacy taki triggery

no tak, trigger do każdej tabeli a w zasadzie to kilka insert/update/delete to rozumiem, ale jak to zrobić z procedurą ? możesz trochę rozwinąć myśl?

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
0

Robisz procedury które odpowiadają za insert i update i delete i tam robisz logowanie oraz jakieś dodatkowe sprawdzania i walidacje i w aplikacji używasz tylko tych procedur A nie robisz operacji insert update itp

PI
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:72
0

no właśnie - w aplikacji - ja chcę zrobić całą obsługę w bazie danych ale nie chcę dodawać triggera do każdej tabeli z osobna, chciałbym zrobic to "jakoś" globalnie

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
0

Jest też jakiś system audytów wbudowany w bazę. Nigdy tego nie testowałem https://oracle-base.com/articles/8i/auditing
To jak ten wbudowany system nie zadziała to raczej nie ma globalnego sposobu monitorowania zmian w bazie.

edytowany 1x, ostatnio: UglyMan
PI
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:72
0

no i to może właśnie być to o co mi chodzi, dziękuję za podpowiedź

XY
  • Rejestracja:ponad 6 lat
  • Ostatnio:10 dni
  • Postów:259
0

Taki z grubsza automat, tylko w typie "armaty", więc pewnie będzie trochę zabaw z konfiguracją:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sutil/oracle-logminer-utility.html
A jakby chodziło tylko o zgrubne ilości modyfikacji danych za jakiś czas, to są takie w bazie do celów decydowania, czy powinny zostać przeliczone statystyki (dla optymalizatora) dla poszczególnych tabel.

PI
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:72
0

Jeszcze raz dziękuję za pomoc. Jak "ogarnę" temat podzielę się wiedzą. Niemniej jednak zastanawiam się nad szerszym rozwiązaniem.
Mianowicie mamy tabelę EVENTS_TYPES w której są zapisane możliwe typy zdarzeń po jakiejkolwiek ingerencji użytkownika
w dane generowany jest zapis w tabeli LOG_DB. Prawdopodobnie moja koncepcja logowania skończy się na triggerach i procedurach.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.