ตารางการตรวจสอบคืออะไร?


24

ตารางตรวจสอบคืออะไร?

มีประโยชน์อย่างไร?

ฉันมาข้ามพวกเขาอ่านบทความนี้


2
พวกเขาเป็นเพียงตารางปกติ มันเป็นวิธีที่คุณใช้พวกเขาและสิ่งที่คุณใส่ลงไปในนั้น
Nick Chammas

1
พวกเขาไม่เหมือนกัน คุณมีตารางตรวจสอบบัญชีซึ่งแยกต่างหากจากตารางที่คุณกำลังตรวจสอบ ดังนั้นคุณจึงควรมีสองตารางและNormalTable AuditNormalTable
Thomas Stringer

1
แมตต์ฉลามได้รับคำตอบจากคุณ @Shark ฉันกำลังเน้นจุดที่ตารางตรวจสอบไม่ใช่โครงสร้างฐานข้อมูลพิเศษ (เนื่องจากฉันได้รับความประทับใจ OP อาจเชื่อว่า) มันเป็นเพียงอีกตารางที่นักพัฒนาสร้างและใช้ในการติดตามข้อมูลบางอย่าง
Nick Chammas

@ NickChammas โอ้จริง ๆ ฉันเข้าใจสิ่งที่คุณหมายถึง แต่จากความคิดเห็นของ OP ฉันไม่คิดว่าเขาจะทำ
Thomas Stringer

หากคุณพิจารณาความหมายของพจนานุกรมของการตรวจสอบคุณอาจสรุปได้ว่า "ตารางการตรวจสอบ" เป็นชื่อเรียกที่ไม่ถูกต้อง การตรวจสอบควรอยู่นอกฐานข้อมูล: ถ้ามันถูกเข้ารหัสโดยธุรกิจแอปพลิเคชันเองมันจะเป็นการตรวจสอบได้อย่างไร?
oneday เมื่อ

คำตอบ:


22

ตารางตรวจสอบใช้เพื่อติดตามธุรกรรมกับตารางหรือตารางเฉพาะ พวกเขาช่วยให้คุณเห็น "บันทึก" ต่อเนื่อง (เพราะขาดคำที่ดีกว่า) ตัวอย่างเช่นสมมติว่าคุณมีโต๊ะแบบนี้:

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?
leeand00

24

แง่มุมหนึ่งที่สำคัญอื่น ๆ ของตารางการตรวจสอบที่ไม่ได้รับการเน้นป่านนี้ก็คือว่านอกเหนือไปจากการติดตามว่าใครทำอะไรเพื่อที่บันทึก (มักรวมทั้งก่อนและหลังภาพรวม) ตารางการตรวจสอบมีเขียนเมื่อ

ประวัติในตารางการตรวจสอบอาจไม่สามารถปรับปรุงหรือลบ (ดูหมายเหตุ) แทรกเท่านั้น บางครั้งสิ่งนี้ถูกกำหนดโดยใช้ทริกเกอร์หรืออาจเป็นเพียงแค่ตรรกะของแอปพลิเคชัน แต่สิ่งสำคัญในทางปฏิบัติก็คือเพราะมันให้ "การพิสูจน์" แก่คุณว่าไม่มีสิ่งใดถูกแก้ไขในวิธีที่ยากต่อการตรวจจับ

หมายเหตุ:การล้างระเบียนเก่าจากตารางการตรวจสอบต้องใช้กระบวนการพิเศษซึ่งมักจะต้องได้รับการอนุมัติจากฝ่ายบริหารหรือผู้ตรวจสอบ


4

โดยทั่วไปจะใช้ตารางตรวจสอบเมื่อคุณต้องการติดตามการเปลี่ยนแปลงในตารางที่ละเอียดอ่อน / เป็นความลับ หากมีตารางที่ใช้สำหรับอัตราการจ่ายและอัตราร้อยละของโบนัสและแอปพลิเคชัน HR จะจ่ายเงินเดือนตามข้อมูลนี้ผู้ใช้ที่มีสิทธิ์ในการเขียนเพื่อเข้าถึงตารางนี้สามารถทำการแก้ไขการชำระเงินโดยไม่ได้รับอนุญาต

ในเวลาเดียวกันผู้ใช้บางคนควรได้รับอนุญาตให้ทำงานบนตารางเหล่านี้ นี่คือที่มาของตารางการตรวจสอบตารางการตรวจสอบสามารถใช้เพื่อติดตามค่าก่อนและหลังของข้อมูลที่เปลี่ยนแปลง พวกเขามักจะบันทึกข้อมูลพิเศษเช่นคนที่ทำการเปลี่ยนแปลงและเวลาที่ทำการเปลี่ยนแปลง

ดังนั้นตารางการตรวจสอบเหล่านี้จะขัดขวางผู้ใช้ที่มีอำนาจในการดำเนินกิจกรรมที่ไม่ได้รับอนุญาต พวกเขายังให้วิธีการย้อนกลับเป็นค่าที่ถูกต้อง

SQL 2008 ขึ้นไปมีคุณสมบัติในตัวที่เรียกว่าChange Data Captureที่สามารถใช้สำหรับสิ่งนี้


2
การเปลี่ยนแปลงข้อมูลที่น่าเศร้านั้นน่ากลัวสำหรับการตรวจสอบเพราะคุณไม่สามารถจับผู้ใช้ที่ทำการเปลี่ยนแปลงได้ (เว้นแต่คุณจะเก็บข้อมูลนั้นไว้ในฐานข้อมูลแล้ว)
HLGEM

0

ตารางตรวจสอบถูกใช้โดยเครื่องมือตรวจสอบแบบเนทีฟหรือของบุคคลที่สามที่จับการเปลี่ยนแปลงข้อมูลที่เกิดขึ้นในฐานข้อมูลโดยปกติจะรวมถึงข้อมูลว่าใครเป็นผู้ทำการเปลี่ยนแปลงซึ่งวัตถุใดที่ได้รับผลกระทบจากมันเมื่อมันถูกสร้างขึ้น ล็อกอิน SQL แอปพลิเคชันและโฮสต์ที่ใช้ในการเปลี่ยนแปลง ข้อมูลที่บันทึกไว้ทั้งหมดจะถูกเก็บไว้ในตารางการตรวจสอบและควรมีอยู่ในรูปแบบที่ใช้งานง่ายผ่านการส่งออกหรือการสืบค้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.