2009-04-27 27 views
13

Tôi đang nhìn vào quá trình thay đổi kiểm toán của chúng tôi cho SQL Server của chúng tôi năm 2005 cơ sở dữ liệu và tôi tình cờ gặp Change Data Capture trong SQL Server 2008.Kiểm toán SQL Server dữ liệu thay đổi

này trông giống như một ý tưởng tốt, và tôi bị cám dỗ để thử nó, nhưng trước khi tôi có bất cứ ai sử dụng nó trong một môi trường thương mại và suy nghĩ của bạn là gì?

Tôi nhận thấy khi tôi đọc về CDC trong phần trợ giúp của MS, dữ liệu kiểm toán thường được lưu giữ trong một vài ngày. Điều đó là không thể ở đây, tôi muốn giữ dữ liệu vô hạn định, có ai biết vấn đề với cách tiếp cận này không?

Nếu đây không phải là giải pháp tốt vì lý do tôi không biết, bạn có bất kỳ giải pháp nào khác để kiểm tra thay đổi dữ liệu. Tôi rất muốn sử dụng một hệ thống có thể được thực hiện trên bảng trên bất kỳ bảng nào tôi mong muốn.

Tôi là người cơ bản: "Trước, Sau, Ai By, Khi" thông tin cho bất kỳ thay đổi nào.

Trả lời

9

CDC chỉ là phương tiện để kết thúc theo ý kiến ​​của tôi. Tôi đã triển khai các giải pháp kiểm tra đường mòn trong quá khứ và họ đã liên quan đến việc sử dụng Trình kích hoạt. Điều này đã rất lộn xộn và hiệu suất chuyên sâu cho các cơ sở dữ liệu giao dịch cao.

CDC cung cấp cho bạn là khả năng ghi lại dữ liệu kiểm tra mà không sử dụng trình kích hoạt, nhưng bạn vẫn cần phương tiện để đưa dữ liệu đó vào bảng vĩnh viễn. Điều này có thể được thực hiện với một bảng gương cho mỗi bảng được kiểm toán hoặc một bảng duy nhất theo dõi tất cả các thay đổi đối với tất cả các bảng (tôi đã làm sau này).

Dưới đây là một số liên kết với thêm thông tin về làm thế nào nó được thực hiện bằng trigger:
SQL Audit Trail
sql-server-history-table-populate-through-sp-or-trigger

Dưới đây là một kiểm toán nguồn giải pháp theo dõi mở có sử dụng LINQ: DoddleAudit

+0

tôi thấy, tôi vừa đọc một số chi tiết trên CDC và hiểu những gì bạn đang nói. Có vẻ như CDC lợi ích từ việc không đồng bộ. Tôi khá thích ý tưởng của bạn về bảng duy nhất để theo dõi tất cả các thay đổi, tuy nhiên có vẻ như với tôi rằng với "cơ sở dữ liệu giao dịch cao" bảng này có thể nhận được rất lớn, rất nhanh chóng. – MrEdmundo

+0

Hey, cuối cùng tôi cũng đã có một vòng để xem xét những gì bạn đang nói. Tôi đã tự hỏi làm thế nào để bạn theo dõi những người thực hiện những thay đổi trong hệ thống của bạn? Về nguyên tắc CDC có vẻ khá dễ thiết lập và cung cấp một số chức năng tốt đẹp. – MrEdmundo

+0

Trong thiết lập của tôi, mỗi bảng có 4 cột bổ sung: CreatedDate, CreatedBy, UpdatedDate, UpdatedBy. Tôi điền vào 2 cột cuối cùng với tên người dùng/ngày trong báo cáo cập nhật sql của tôi. Tôi sử dụng để xác định ai đã thay đổi cái gì. –

0

Bạn có thể chỉnh sửa công việc Sql Server để xóa các thay đổi đã chụp sau hai ngày. Bạn cũng có thể kéo dài thời gian dọn dẹp này theo sự thuận tiện của bạn hoặc làm cho nó vĩnh viễn.

0

Tôi đang sử dụng this tập lệnh, bạn có thể xác định (các) bảng bạn muốn có kiểm tra hoặc tất cả bảng xác định trên cơ sở dữ liệu của bạn. Plus, tvf cho xem hồ sơ duy nhất của lịch sử. Kiểm tra liên kết để biết chi tiết.

6

Khá muộn nhưng hy vọng nó sẽ hữu ích cho độc giả khác ...

Dưới đây là các kỹ thuật khác nhau cho kiểm toán với ưu và nhược điểm của nó. Không có giải pháp “đúng” phù hợp với tất cả. Nó phụ thuộc vào các yêu cầu và hệ thống đang được kiểm toán.

Triggers

  • Ưu: tương đối dễ thực hiện, rất nhiều linh hoạt vào những gì được kiểm toán và làm thế nào là dữ liệu kiểm toán được lưu trữ bởi vì bạn có toàn quyền kiểm soát
  • Nhược: Nó được lộn xộn khi bạn có nhiều bảng và thậm chí nhiều trình kích hoạt hơn. Việc bảo trì có thể nặng nếu không có một số công cụ của bên thứ ba để trợ giúp. Ngoài ra, tùy thuộc vào cơ sở dữ liệu nó có thể gây ra một tác động hiệu suất.

CDC

  • Ưu: Rất dễ dàng để thực hiện, natively hỗ trợ
  • Nhược: Chỉ xuất hiện trong phiên bản doanh nghiệp, không phải là rất mạnh mẽ - nếu bạn thay đổi schema dữ liệu của bạn sẽ bị mất. Tôi sẽ không khuyên này để giữ một đường mòn kiểm toán dài hạn

Dấu vết

  • Ưu: rất nhiều tính linh hoạt về những gì đang được kiểm toán. Ngay cả các câu lệnh chọn cũng có thể được kiểm tra.
  • Nhược điểm: Bạn cần phải tạo một ứng dụng riêng biệt để phân tích các tệp theo dõi và thu thập thông tin hữu ích từ các tệp này.

Đọc nhật ký giao dịch

  • Ưu: tất cả các bạn cần làm là đặt cơ sở dữ liệu trong chế độ hồi phục hoàn toàn và tất cả các thông tin sẽ được lưu trữ trong nhật ký giao dịch
  • Nhược : Bạn cần trình đọc nhật ký của bên thứ ba để đọc hiệu quả này

Tôi đã làm việc với một số công cụ kiểm toán từ ApexSQL nhưng cũng có công cụ tốt từ Idera (quản lý tuân thủ) và Krell phần mềm (kiểm toán omni)

ApexSQL Audit - Kích hoạt công cụ kiểm toán dựa. Tạo ra và quản lý kiểm toán gây

ApexSQL Log - Cho phép kiểm toán bằng cách đọc nhật ký giao dịch

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