NormalTable
và AuditNormalTable
.
NormalTable
và AuditNormalTable
.
Câu trả lời:
Bảng kiểm toán được sử dụng để theo dõi các giao dịch đối với một bảng hoặc bảng cụ thể. Chúng cho phép bạn xem một "nhật ký" đang diễn ra (vì không có từ nào tốt hơn). Chẳng hạn, giả sử bạn có một bảng như thế này:
create table SensitiveInformation
(
SensitiveNumber int not null,
SensitiveData varchar(100) not null
)
go
Có thể có người dùng và / hoặc ứng dụng có quyền truy cập để chèn, cập nhật và xóa khỏi bảng đó. Nhưng do tính chất nhạy cảm của dữ liệu đó, bạn có thể muốn có một cách nhanh chóng và dễ dàng để theo dõi ai đang làm gì trên bảng đó.
Vì vậy, bạn có Bảng kiểm toán để theo dõi những gì đang được thực hiện trên bảng đó. Thông thường sẽ bao gồm cơ bản Ai , Cái gì , Khi nào .
Một bảng kiểm toán có thể trông như thế này:
create table SensitiveInformationAudit
(
SensitiveNumberNew int null,
SensitiveNumberOld int null,
SensitiveDataNew varchar(100) null,
SensitiveDataOld varchar(100) null,
Action varchar(50) not null,
AuditDate datetime not null,
LastUpdatedUser varchar(100) not null
)
go
Các bảng kiểm toán thường được lấp đầy thông qua việc sử dụng Cơ sở dữ liệu kích hoạt. Nói cách khác, khi X
hành động xảy ra SensitiveInformation
, hãy chèn các chi tiết của nó vào SensitiveInformationAudit
.
Action
lĩnh vực UPDATE
hay INSERT
hay DELETE
?
Một khía cạnh quan trọng khác của các bảng kiểm toán chưa được làm nổi bật cho đến nay, đó là ngoài việc theo dõi xem ai đã làm gì để ghi lại (thường bao gồm trước và sau ảnh chụp nhanh) các bảng kiểm toán được ghi một lần .
Các bản ghi trong bảng kiểm toán có thể không được cập nhật hoặc xóa (xem ghi chú), chỉ được chèn . Điều này đôi khi được áp dụng bằng cách sử dụng kích hoạt hoặc có thể chỉ là logic ứng dụng, nhưng thực tế nó quan trọng vì nó cung cấp cho bạn "bằng chứng" rằng không có gì bị giả mạo theo cách khó phát hiện.
Lưu ý: Việc dọn dẹp các hồ sơ cũ khỏi bảng kiểm toán đòi hỏi các quy trình đặc biệt thường phải được quản lý hoặc kiểm toán viên phê duyệt.
Các bảng kiểm toán thường được sử dụng khi bạn muốn theo dõi các thay đổi trong các bảng nhạy cảm / bí mật. Nếu có một bảng được sử dụng cho tỷ lệ chi trả và tỷ lệ phần thưởng và ứng dụng nhân sự trả tiền lương dựa trên dữ liệu này, thì người dùng có quyền truy cập ghi vào bảng này có thể thực hiện sửa đổi thanh toán trái phép.
Đồng thời, một số người dùng nên được phép làm việc trên các bảng này. Đây là nơi các bảng kiểm toán xuất hiện. Các bảng kiểm toán có thể được sử dụng để theo dõi giá trị trước và sau của dữ liệu đã thay đổi. Thông thường họ cũng lưu thông tin bổ sung như người thực hiện thay đổi và thời gian thực hiện thay đổi.
Do đó, các bảng kiểm toán này ngăn cản người dùng thực hiện các hoạt động trái phép. Họ cũng cung cấp một phương tiện để trở lại các giá trị chính xác.
SQL 2008 trở lên có một tính năng tích hợp có tên Change Data Capture có thể được sử dụng cho việc này.
Các bảng kiểm toán được sử dụng bởi các công cụ kiểm toán gốc hoặc bên thứ 3 nắm bắt các thay đổi dữ liệu đã xảy ra trên cơ sở dữ liệu, thường bao gồm thông tin về người thực hiện thay đổi, đối tượng nào bị ảnh hưởng bởi nó, khi nó được thực hiện cũng như thông tin trên Đăng nhập SQL, ứng dụng và máy chủ được sử dụng để thực hiện thay đổi. Tất cả thông tin thu được được lưu trữ trong các bảng kiểm toán và phải có sẵn ở các định dạng thân thiện với người dùng thông qua xuất hoặc truy vấn.