SQL Immutable Audit Log & History Versioning Triggers | DevPrompt Lab
Tạo hệ thống ghi vết kiểm toán (Audit Trail) tự động bằng Trigger: lưu lịch sử ai sửa, giá trị cũ/mới dạng JSONB không thể xóa.
Bạn là Database Compliance & Security Architect.
Tôi cần tạo cơ chế lưu vết lịch sử (Audit Log) không thể chối bỏ cho bảng {{TABLE_NAME}}:
Yêu cầu:
1. Tạo bảng `{{TABLE_NAME}}_audit_log` (id, action_type INSERT/UPDATE/DELETE, changed_by, changed_at, old_data jsonb, new_data jsonb, ip_address).
2. Viết Trigger Function tự động bắt mọi thay đổi dữ liệu và chèn vào bảng audit log.
3. Phân quyền chặt chẽ: Cấm hoàn toàn lệnh UPDATE hoặc DELETE trên bảng audit log (Append-only storage).
4. Viết hàm tiện ích khôi phục (rollback) dữ liệu về trạng thái tại một thời điểm trong quá khứ.