2009-05-22 9 views
6

W kilku moich tabelach w mojej bazie danych SQL Server 2005 wszystkie moje dane zostały usunięte. Czy mimo to można uzyskać dziennik SQL Server zawierający wszystkie instrukcje, które zostały uruchomione w ciągu ostatniego dnia? Próbuję dowiedzieć się, czy ktoś zrobił to w wyniku wypadku, w mojej aplikacji sieciowej wystąpiła luka w zabezpieczeniach, lub faktyczny błąd bazy danych został naruszony.W jaki sposób moje zabezpieczenia bazy danych zawiodły?

+6

Nie mam problemów z iniekcją SQL, mam nadzieję? –

Odpowiedz

2

Poniżej znajduje się kilka programów, które pozwolą Ci odczytać dziennik.

http://sqlserver2000.databases.aspfaq.com/how-do-i-recover-data-from-sql-server-s-log-files.html

Jeden z Red Gate is called SQL Rescue i wygląda całkiem nieźle.

+0

Można faktycznie oddzielić dziennik transakcji i określić, co zostało uruchomione w bazie danych. Jednak są one w zastrzeżonym, nieudokumentowanym formacie pliku - szukaj narzędzi, które mogą to zrobić, niestety nie mam rekomendacji. –

+0

@Redbeard: Myliłem się i zaktualizowałem swoją odpowiedź. Dzięki! – NotMe

2

można spróbować narzędzia dziennika ratunkowego jak Log Rescue

Chciałbym również uporządkować pewne inspekcję własną rękę.

Log Rescue nie obsługuje SQL 2005, więc można też spróbować Apex SQL Log

+0

Strona Log Rescue stwierdza, że ​​nie obsługuje SQL 2005 (czyli tego, co używa OP) –

1

Istnieją aplikacje można kupić, że można przekonwertować kopię zapasową dziennika transakcji do rzeczywistych wypowiedzi, które były prowadzone. Być może uda Ci się znaleźć wersję próbną niektórych z nich, niestety nie mogę zalecić żadnej konkretnej.

3

Poszukujesz dziennika transakcji . W zależności od tego, jak i jeśli jest skonfigurowany, będziesz mógł zobaczyć, co zostało uruchomione. Jest na niej trochę informacji pod adresem http://www.databasedesign-resource.com/sql-server-transaction-log.html. Biorąc to pod uwagę, jestem pewien, że możesz również ulepszyć zasoby Google.

+0

Moje rozumienie dziennika transakcji polega na tym, że * nie * przechowuje tekst instrukcji SQL uruchamianych na serwerze, ale lokalizacje i zawartość stron, których dotyczyła każda transakcja. Dziennik jest przydatny do przewijania transakcji w przód lub w tył w celu przywrócenia punktu w czasie, ale z tego, co wiem, jest bezużyteczny w przypadku kryminalistyki. –

+0

Snafu terminologii, myślę. MySQL na przykład wywołuje log, który opisałeś dziennik transakcji. "Dziennik binarny" MySQL jest równoważny "dziennikowi transakcji" programu SQL Server. –

1

Należy pamiętać o jeszcze jednej rzeczy: jeśli haker uzyska wystarczający dostęp, aby wyczyścić niektóre tabele, istnieje spora szansa, że ​​uzyskali wystarczający dostęp, aby uzyskać dostęp do swoich plików dziennika.

3

Można również spróbować uruchomić polecenie DBCC LOG (baza danych, 3). Wyśle dane z dziennika transakcji.

1

Utwórz kopię zapasową dziennika transakcji w programie SQL Server, pobierz wersję próbną programu TOAD dla programu SQL Server, w której można zaimportować kopię zapasową transakcji Transactionlog.

A jeśli chcesz, możesz również utworzyć INSERT Scripts z usuniętych rekordów. Ale nie wiem, czy są jakieś ograniczenia w wersji próbnej TOAD.

Powiązane problemy