Sprawdzenie co zmieniło się w bazie SQL po działaniu klienta bazy

0

Mam nietypowe pytanie na które, przeglądając forum, nie znalazłem odpowiedzi. Czy jest taka możliwość, aby przy każdej akcji użytkownika w kliencie bazy danych pojawiałyby się informacje co w efekcie tych akcji zmieniło się w bazie? Chcę sprawdzić jedną konkretną rzecz, nie potrzebuję szpiegować całego oprogramowania, a jedynie sprawdzić co robi w przypadku wybrania jednej z funkcji. :)

0

Nie podałeś o jaki silnik bazodanowy Ci chodzi. Np. Oracle pozwala "cofać się w czasie" ze stanem bazy, więc skoro wiesz kiedy była dana zmiany i co mogło zostać zmienione możesz sprawdzić wartości przed i po. Albo np. przelecieć jakimś narzędziem jak Apex całą bazę i sprawdzić różnice. Ogólnie może się okazać, że mniej czasochłonne i z lepszym efektem będzie logowania z poziomu kodu co się zmienia.

0

W bazach MS i Oracle można też użyć Change Data Capture.

0

Faktycznie, zapomniałem o silniku. Baza stoi na SQL Express od Microsoftu. Głównym problemem jest to, że nie wiem co się zmienia ani gdzie po akcji użytkownika. Nie mogę znaleźć miejsca przechowywania tych danych, więc stwierdziłem, że najlepiej będzie je znaleźć śledząc zmiany.

Jeśli chodzi o Change Data Capture, to nie jest on chyba obsługiwany przez SQL Express. Ponadto, nie wiem w której tabeli znajdują się szukane przeze mnie dane, a ręczne włączanie trackingu w każdej z 400 tabel to chyba nie jest dobre rozwiązanie. :)

0

400 tabel... projekt tej bazy jest na pewno przemyślany? Zamiast ręcznego trackingu masz narzędzia jak np Apex, gdzie za friko można z triala skorzystać. Możesz zrobić backup bazy przed akcją użytkownika i backup po zmianach a potem porównać dane w obu plikach.

A jak masz bazę składającą się z 400 tabel, w której nie wiesz co się zmienia i nie wiesz kiedy, ani w jakiej tabeli czyli w zasadzie nie wiesz czego szukasz to jest raczej słabo :)

Jest jeszcze SQL Profiler (ale chyba w expresie mssql tez niedostępny) gdzie na żywo można podglądać co leci na bazę.

0

Najlepszym do tego "snifferem" jest oczywiście Profiler - no ale wiadomo SQL Server Express... więc albo wersja developer i wtedy sobie przechwyć, albo użyj Trace śledzenie zmian, aktywności do pliku loga.

1
copytco napisał(a):

Jeśli chodzi o Change Data Capture, to nie jest on chyba obsługiwany przez SQL Express.

W Express nie, ale działa w wersji Developer.

Ponadto, nie wiem w której tabeli znajdują się szukane przeze mnie dane, a ręczne włączanie trackingu w każdej z 400 tabel to chyba nie jest dobre rozwiązanie. :)

A co to za problem puścić skrypt po wszystkich tabelach i na każdej włączyć to, co trzeba? :P

Xiuthechutli napisał(a):

400 tabel... projekt tej bazy jest na pewno przemyślany?

Czemu? 400 tabel to jeszcze nie jest tak dużo.

A jeśli to musi być SQL Server Express, to i Express profiler się przyda: http://expressprofiler.codeplex.com/

0

Express profiler to to czego szukałem - dzięki. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1