Helpex - Trao đổi & giúp đỡ Đăng nhập

django AuditTrail vs Reversion

Vũ Như Trà
· 05:02 04/05/2009
3 ngày trước

Tôi đang làm việc trên một ứng dụng web mới, tôi cần lưu trữ bất kỳ thay đổi nào trong cơ sở dữ liệu để kiểm tra (các) bảng. Mục đích của các bảng kiểm toán như vậy là sau này trong một cuộc kiểm toán thực tế, chúng ta có thể chắc chắn điều gì đã xảy ra trong một tình huống, ai đã chỉnh sửa cái gì và trạng thái của db tại thời điểm ví dụ như một phép tính phức tạp. Vì vậy, phần lớn bảng kiểm toán sẽ được viết và không được đọc. Báo cáo có thể được tạo ra mặc dù đôi khi.

Tôi đã tìm kiếm giải pháp có sẵn

  1. AuditTrail - đơn giản và đó là lý do tại sao tôi nghiêng về nó, tôi có thể hiểu nó là mã tệp duy nhất.
  2. Reversion - trông đủ đơn giản để sử dụng nhưng không chắc chắn việc sửa đổi nó nếu cần sẽ dễ dàng như thế nào.
  3. rcsField dường như rất phức tạp và quá nhiều so với nhu cầu của tôi

Tôi chưa thử bất kỳ ai trong số này, vì vậy tôi muốn biết một số trải nghiệm thực tế và tôi nên sử dụng cái nào. Ví dụ: cái nào nhanh hơn, sử dụng ít không gian hơn, dễ dàng mở rộng và bảo trì?

17 hữu ích 1 bình luận 6.7k xem chia sẻ
Hoàng Thường Xuân
· 15:10 04/05/2009
15:10:02 04/05/2009

Cá nhân tôi thích tạo các bảng kiểm tra trong cơ sở dữ liệu và điền thông qua các trình kích hoạt để bất kỳ thay đổi nào ngay cả các truy vấn đột xuất từ ​​cửa sổ truy vấn đều được lưu trữ. Tôi sẽ không bao giờ xem xét một giải pháp kiểm toán không dựa trên chính cơ sở dữ liệu. Điều này rất quan trọng vì những người đang thực hiện các thay đổi độc hại đối với cơ sở dữ liệu hoặc thực hiện hành vi gian lận không có khả năng làm như vậy thông qua giao diện web mà trực tiếp trên chương trình phụ trợ. Những thứ này xảy ra nhiều hơn từ những nhân viên bất mãn hoặc ngoan cố hơn là những tin tặc bên ngoài. Nếu bạn đang sử dụng ORM, dữ liệu của bạn sẽ gặp rủi ro vì các quyền ở cấp bảng chứ không phải cấp sp nơi chúng thuộc về. Do đó, điều quan trọng hơn là bạn phải nắm bắt bất kỳ thay đổi nào có thể xảy ra đối với dữ liệu không chỉ là những gì từ GUI. CHÚNG TÔI có một trình tự động để tạo các bảng kiểm tra được chạy bất cứ khi nào bảng mới được thêm vào cơ sở dữ liệu. Vì các bảng kiểm tra của chúng tôi chỉ điền các thay đổi chứ không phải toàn bộ bản ghi, chúng tôi không cần phải thay đổi chúng mỗi khi một trường được thêm vào.

Ngoài ra, khi đánh giá các giải pháp khả thi, hãy đảm bảo bạn cân nhắc mức độ khó hoàn nguyên dữ liệu để hoàn tác một thay đổi cụ thể. Một khi bạn có các bảng kiểm toán, bạn sẽ thấy rằng đây là một trong những điều quan trọng nhất bạn cần làm từ chúng. Cũng nên xem xét việc bảo trì thông tin sẽ khó khăn như thế nào khi lược đồ cơ sở dữ liệu thay đổi.

Chọn một giải pháp vì nó có vẻ dễ hiểu nhất, nói chung không phải là một ý kiến ​​hay. Đó phải là mức thấp nhất trong số các tiêu chí lựa chọn của bạn sau khi đáp ứng các yêu cầu, bảo mật, v.v.

7 hữu ích 1 bình luận chia sẻ
Tạ Thế Tùng
· 07:28 04/05/2009
07:28:12 04/05/2009

Tôi không thể cung cấp cho bạn kinh nghiệm thực tế với bất kỳ ai trong số họ nhưng tôi muốn quan sát.

Tôi giả sử với AuditTrail bạn có nghĩa là AuditTrail trên Django wiki . Nếu vậy, tôi nghĩ thay vào đó bạn sẽ muốn nhìn vào HistoricalRecordsđược phát triển bởi cùng một tác giả (Marty Alchin hay còn gọi là @gulopine) trong cuốn sách Pro Django của anh ấy . Nó sẽ hoạt động tốt hơn với Django 1.x.

Đây là cách tiếp cận mà tôi sẽ sử dụng cho một dự án sắp tới, không phải vì nó nhất thiết phải đánh bại những người khác từ quan điểm kỹ thuật, mà bởi vì nó phù hợp với kỳ vọng "thế giới thực" của đường mòn kiểm toán cho ứng dụng đó.

3 hữu ích 3 bình luận chia sẻ
Đỗ Bảo Anh
· 06:35 17/05/2009
06:35:11 17/05/2009

Như tôi đã nêu trong câu hỏi của mình, rcField dường như phù hợp với nhu cầu của tôi, điều này rất đơn giản là tôi muốn lưu trữ bất kỳ thay đổi nào vào bảng của mình và có thể quay lại sau với những thay đổi đó để tạo một số báo cáo.

Vì vậy, tôi đã thử nghiệm AuditTrail và Reversion Reversion dường như là một ứng dụng hoàn chỉnh tốt hơn với nhiều tính năng (mà tôi không cần), Ngoài ra, theo như tôi biết thì nó lưu dữ liệu trong một bảng duy nhất ở định dạng XML hoặc YAML, theo tôi nghĩ

  1. sẽ tạo ra quá nhiều dữ liệu trong một bảng
  2. để đọc dữ liệu đó, tôi có thể không sử dụng được các công cụ db hiện có.

AuditTrail thắng ở điểm đó là đối với mỗi bảng, nó tạo ra một bảng kiểm toán tương ứng và do đó các thay đổi có thể được theo dõi dễ dàng, dữ liệu trên mỗi bảng ít hơn và có thể dễ dàng thao tác và người dùng tạo báo cáo.

Vì vậy, tôi sẽ sử dụng AuditTrail.

2 hữu ích 2 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ database django audit audit-trail reversion , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm