2009-05-22 26 views
6

Trong một vài bảng của tôi trong cơ sở dữ liệu SQL Server 2005 của tôi, tất cả dữ liệu của tôi đã bị xóa. Có anyway để có được một bản ghi trong SQL Server của tất cả các báo cáo đã chạy trong ngày qua? Tôi đang cố gắng tìm hiểu xem có ai đó đã làm điều này một cách tình cờ hay không, có lỗ hổng trong ứng dụng web của tôi hoặc DB thực sự đã bị xâm phạm.Bảo mật cơ sở dữ liệu của tôi không thành công như thế nào?

+6

Không có vấn đề về SQL Injection, tôi hy vọng? –

Trả lời

2

Xem phần sau có một vài chương trình cho phép bạn đọc nhật ký.

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

Một từ Red Gate is called SQL Rescue và trông khá tốt.

+0

Bạn thực sự có thể xé bỏ Nhật ký giao dịch và xác định những gì được chạy trên cơ sở dữ liệu. Tuy nhiên, đây là một định dạng tập tin độc quyền, không có giấy tờ - được trên Lookout cho các công cụ có thể làm điều này, tôi tiếc là không có một đề nghị. –

+0

@Redbeard: Tôi đã sai và cập nhật câu trả lời của mình. Cảm ơn! – NotMe

2

Bạn có thể thử một công cụ log cứu như Log Rescue

tôi cũng sẽ sắp xếp ra một số kiểm toán của riêng bạn.

Log Rescue không hỗ trợ SQL 2005, do đó bạn cũng có thể thử Apex SQL Log

+0

Trang dành cho Nhật ký Cứu hộ nói rằng nó không hỗ trợ SQL 2005 (đó là những gì OP đang sử dụng) –

1

Có những ứng dụng bạn có thể mua mà có thể chuyển đổi một bản sao lưu nhật ký giao dịch vào những điều khoản thực tế đã được chạy. Bạn có thể tìm thấy một phiên bản dùng thử của một số trong số này, tiếc là tôi không thể reccommend bất kỳ một cụ thể mặc dù.

3

Bạn đang tìm kiếm nhật ký giao dịch . Tùy thuộc vào cách thức, và nếu, nó được thiết lập, bạn sẽ có thể xem những gì đã được chạy. Có một số thông tin về nó tại http://www.databasedesign-resource.com/sql-server-transaction-log.html. Cho rằng, tôi chắc chắn bạn cũng có thể Google một số tài nguyên tốt hơn.

+0

Sự hiểu biết của tôi về nhật ký giao dịch là nó không * lưu trữ văn bản của câu lệnh SQL chạy trên máy chủ, nhưng vị trí và nội dung của các trang bị ảnh hưởng trong mỗi giao dịch. Nhật ký rất hữu ích cho việc chuyển giao các giao dịch về phía trước hoặc phía sau để khôi phục điểm trong thời gian, nhưng, theo như tôi biết, vô dụng cho pháp y. –

+0

Thuật ngữ snafu, tôi nghĩ vậy. MySQL, ví dụ, gọi nhật ký bạn mô tả nhật ký giao dịch. "Nhật ký nhị phân" của MySQL tương đương với "nhật ký giao dịch" của SQL Server. –

1

Điều gì đó cần lưu ý: nếu một hacker có đủ quyền truy cập để xóa một số bảng, có khả năng họ đã có đủ quyền truy cập để có cách của họ với tệp nhật ký của bạn.

3

Bạn cũng có thể thử chạy lệnh DBCC LOG (cơ sở dữ liệu, 3). Nó sẽ xuất dữ liệu trong nhật ký giao dịch.

1

Tạo bản ghi nhật ký giao dịch trong SQL Server, tải xuống phiên bản dùng thử của TOAD cho SQL Server ở đó bạn có thể nhập bản sao lưu Transactionlog của mình.

Và nếu bạn muốn, bạn cũng có thể tạo INSERT Scripts của các bản ghi DELETED. Nhưng tôi không biết nếu có bất kỳ hạn chế nào trong phiên bản dùng thử TOAD.

Các vấn đề liên quan