NormalTable
AuditNormalTable
NormalTable
AuditNormalTable
คำตอบ:
ตารางตรวจสอบใช้เพื่อติดตามธุรกรรมกับตารางหรือตารางเฉพาะ พวกเขาช่วยให้คุณเห็น "บันทึก" ต่อเนื่อง (เพราะขาดคำที่ดีกว่า) ตัวอย่างเช่นสมมติว่าคุณมีโต๊ะแบบนี้:
create table SensitiveInformation
(
SensitiveNumber int not null,
SensitiveData varchar(100) not null
)
go
อาจมีผู้ใช้และ / หรือแอปพลิเคชันที่เข้าถึงการแทรกอัปเดตและลบออกจากตารางนั้น แต่เนื่องจากลักษณะที่ละเอียดอ่อนของข้อมูลนั้นคุณอาจต้องการวิธีที่รวดเร็วและง่ายดายในการติดตามผู้ที่กำลังทำอะไรในตารางนั้น
ดังนั้นคุณมีตารางตรวจสอบเพื่อติดตามสิ่งที่กำลังทำอยู่ในตารางนั้น โดยปกติที่จะรวมขั้นพื้นฐานใคร , อะไร , เมื่อ
ตารางตรวจสอบอาจมีลักษณะเช่นนี้:
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
ตารางการตรวจสอบมักจะเต็มไปด้วยการใช้ทริกเกอร์ฐานข้อมูล กล่าวอีกนัยหนึ่งเมื่อมีX
การกระทำเกิดขึ้นSensitiveInformation
ให้ใส่รายละเอียดของสิ่งนั้นลงSensitiveInformationAudit
ไป
Action
สนามUPDATE
หรือINSERT
หรือDELETE
?
แง่มุมหนึ่งที่สำคัญอื่น ๆ ของตารางการตรวจสอบที่ไม่ได้รับการเน้นป่านนี้ก็คือว่านอกเหนือไปจากการติดตามว่าใครทำอะไรเพื่อที่บันทึก (มักรวมทั้งก่อนและหลังภาพรวม) ตารางการตรวจสอบมีเขียนเมื่อ
ประวัติในตารางการตรวจสอบอาจไม่สามารถปรับปรุงหรือลบ (ดูหมายเหตุ) แทรกเท่านั้น บางครั้งสิ่งนี้ถูกกำหนดโดยใช้ทริกเกอร์หรืออาจเป็นเพียงแค่ตรรกะของแอปพลิเคชัน แต่สิ่งสำคัญในทางปฏิบัติก็คือเพราะมันให้ "การพิสูจน์" แก่คุณว่าไม่มีสิ่งใดถูกแก้ไขในวิธีที่ยากต่อการตรวจจับ
หมายเหตุ:การล้างระเบียนเก่าจากตารางการตรวจสอบต้องใช้กระบวนการพิเศษซึ่งมักจะต้องได้รับการอนุมัติจากฝ่ายบริหารหรือผู้ตรวจสอบ
โดยทั่วไปจะใช้ตารางตรวจสอบเมื่อคุณต้องการติดตามการเปลี่ยนแปลงในตารางที่ละเอียดอ่อน / เป็นความลับ หากมีตารางที่ใช้สำหรับอัตราการจ่ายและอัตราร้อยละของโบนัสและแอปพลิเคชัน HR จะจ่ายเงินเดือนตามข้อมูลนี้ผู้ใช้ที่มีสิทธิ์ในการเขียนเพื่อเข้าถึงตารางนี้สามารถทำการแก้ไขการชำระเงินโดยไม่ได้รับอนุญาต
ในเวลาเดียวกันผู้ใช้บางคนควรได้รับอนุญาตให้ทำงานบนตารางเหล่านี้ นี่คือที่มาของตารางการตรวจสอบตารางการตรวจสอบสามารถใช้เพื่อติดตามค่าก่อนและหลังของข้อมูลที่เปลี่ยนแปลง พวกเขามักจะบันทึกข้อมูลพิเศษเช่นคนที่ทำการเปลี่ยนแปลงและเวลาที่ทำการเปลี่ยนแปลง
ดังนั้นตารางการตรวจสอบเหล่านี้จะขัดขวางผู้ใช้ที่มีอำนาจในการดำเนินกิจกรรมที่ไม่ได้รับอนุญาต พวกเขายังให้วิธีการย้อนกลับเป็นค่าที่ถูกต้อง
SQL 2008 ขึ้นไปมีคุณสมบัติในตัวที่เรียกว่าChange Data Captureที่สามารถใช้สำหรับสิ่งนี้
ตารางตรวจสอบถูกใช้โดยเครื่องมือตรวจสอบแบบเนทีฟหรือของบุคคลที่สามที่จับการเปลี่ยนแปลงข้อมูลที่เกิดขึ้นในฐานข้อมูลโดยปกติจะรวมถึงข้อมูลว่าใครเป็นผู้ทำการเปลี่ยนแปลงซึ่งวัตถุใดที่ได้รับผลกระทบจากมันเมื่อมันถูกสร้างขึ้น ล็อกอิน SQL แอปพลิเคชันและโฮสต์ที่ใช้ในการเปลี่ยนแปลง ข้อมูลที่บันทึกไว้ทั้งหมดจะถูกเก็บไว้ในตารางการตรวจสอบและควรมีอยู่ในรูปแบบที่ใช้งานง่ายผ่านการส่งออกหรือการสืบค้น