งานรายวิชา: ปัญหาความปลอดภัยของฐานข้อมูล มั่นใจในความปลอดภัยทาง SMS ความปลอดภัยของข้อมูลในระบบการจัดการฐานข้อมูลสมัยใหม่ รายชื่อแหล่งที่มาที่ใช้

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

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

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

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

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

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

ส่งผลงานดีๆ ของคุณในฐานความรู้ได้ง่ายๆ ใช้แบบฟอร์มด้านล่าง

การทำงานที่ดีไปที่ไซต์">

นักศึกษา นักศึกษาระดับบัณฑิตศึกษา นักวิทยาศาสตร์รุ่นเยาว์ ที่ใช้ฐานความรู้ในการศึกษาและการทำงาน จะรู้สึกขอบคุณเป็นอย่างยิ่ง

โพสต์เมื่อ http://www.allbest.ru/

กระทรวงศึกษาธิการและวิทยาศาสตร์แห่งสหพันธรัฐรัสเซีย

สถาบันเอกชน องค์กรการศึกษาอุดมศึกษา

"สถาบันมนุษยธรรมออมสค์"

ภาควิชาวิทยาการคอมพิวเตอร์ คณิตศาสตร์ และวิทยาศาสตร์ธรรมชาติ

งานหลักสูตร

ในหัวข้อ: ความปลอดภัยของฐานข้อมูล

สาขาวิชาวิชาการ: ฐานข้อมูล

เสร็จสิ้นโดย: Nurgalieva Shynar Altaybekovna

การแนะนำ

1. การโจรกรรมข้อมูลจากฐานข้อมูล

1.1 การควบคุมการเข้าถึงฐานข้อมูล

1.2 การจัดการความสมบูรณ์ของข้อมูล

1.3 การควบคุมการทำงานพร้อมกัน

1.4 การกู้คืนข้อมูล

1.5 ธุรกรรมและการกู้คืน

1.6 การย้อนกลับและการคลี่คลายธุรกรรม

2. ความปลอดภัยของฐานข้อมูล

2.1 การวางแผนฐานข้อมูล

2.2 การเชื่อมต่อกับฐานข้อมูล

2.3 การจัดเก็บข้อมูลที่เข้ารหัส

2.4 การฉีด SQL

2.5 เทคนิคการป้องกัน

บทสรุป

รายชื่อแหล่งที่มาที่ใช้

การใช้งาน

การแนะนำ

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

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

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

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

หนึ่งในการค้นพบหลักในรายงานของ CSI/FBI คือความเสียหายที่เพิ่มขึ้นอย่างมากจากภัยคุกคามจากการโจรกรรมข้อมูลที่เป็นความลับ แต่ละ บริษัทอเมริกันโดยเฉลี่ยสูญเสียเงิน 355.5 พันดอลลาร์เนื่องจากข้อมูลที่เป็นความลับรั่วไหลเพียงช่วง 12 เดือนที่ผ่านมา การสูญเสียโดยเฉลี่ยจากการกระทำภายในอยู่ที่ 300,000 ดอลลาร์ (สูงสุด 1.5 ล้านดอลลาร์) การแก้ปัญหาการเข้าถึงข้อมูลที่เป็นความลับส่วนบุคคลทำให้คุณสามารถระบุตัวผู้โจมตีได้โดยใช้ข้อมูลที่พิสูจน์ความผิดของเขาอย่างไม่อาจหักล้างได้ ในทางกลับกัน สิ่งนี้จะเป็นไปไม่ได้หากปราศจากการใช้วิธีการรับรองความถูกต้องและการควบคุมการเข้าถึงที่ทันสมัยที่สุด

วัตถุประสงค์ของงานหลักสูตรนี้คือเพื่อพิจารณาประเด็นความปลอดภัยของฐานข้อมูล

เพื่อให้บรรลุเป้าหมายนี้ จำเป็นต้องแก้ไขงานต่อไปนี้:

1. ความสามารถในการหลีกเลี่ยงการเข้าถึงฐานข้อมูลโดยไม่ได้รับอนุญาต

2. การจัดเก็บข้อมูลที่เข้ารหัส

3. เทคนิคการป้องกันฐานข้อมูล

ความปลอดภัยในการจัดการฐานข้อมูล

1 . การโจรกรรมข้อมูลจากฐานข้อมูล

1.1 การควบคุมการเข้าถึงฐานข้อมูล

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

ดังนั้นเราจึงมีข้อมูลเบื้องต้นดังต่อไปนี้:

หลายๆ คนไม่ทราบว่าฐานข้อมูลของตนกำลังถูกขโมย

การโจรกรรมและความเสียหายที่เกิดขึ้นนั้นมีลักษณะแฝงอยู่

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

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

ความสามารถในการปกป้องข้อมูลจาก ผู้ดูแลระบบยังไม่ค่อยมีใครรู้จัก ผู้จัดการชอบที่จะถือว่าพวกเขาเป็นพนักงานที่ภักดีที่สุด

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

ข้อกำหนดด้านความปลอดภัยข้อมูลขั้นพื้นฐานสำหรับฐานข้อมูลและ DBMS ส่วนใหญ่ตรงกับข้อกำหนดด้านความปลอดภัยของข้อมูล ระบบคอมพิวเตอร์- การควบคุมการเข้าถึง การป้องกันการเข้ารหัส การตรวจสอบความสมบูรณ์ การบันทึก ฯลฯ

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

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

การควบคุมการทำงานพร้อมกัน การละเมิดความสมบูรณ์ของฐานข้อมูลอาจเกิดขึ้นได้เมื่อมีการดำเนินการกับข้อมูลพร้อมกัน ซึ่งแต่ละรายการไม่ได้ละเมิดความสมบูรณ์ของฐานข้อมูล ดังนั้นจึงต้องจัดให้มีกลไกการจัดการข้อมูลเพื่อให้แน่ใจว่าจะรักษาความสมบูรณ์ของฐานข้อมูลในขณะที่ดำเนินการหลายอย่างพร้อมกัน

การกู้คืน. ข้อมูลที่จัดเก็บไว้ในฐานข้อมูลจะต้องทนทานต่ออิทธิพลทางกายภาพที่ไม่พึงประสงค์ (ข้อผิดพลาดของฮาร์ดแวร์ ไฟฟ้าขัดข้อง ฯลฯ) และข้อผิดพลาดของซอฟต์แวร์ ดังนั้นจึงต้องจัดเตรียมกลไกเพื่อกู้คืนสถานะของฐานข้อมูลก่อนที่จะเกิดความผิดปกติในเวลาอันสั้นมาก

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

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

ส่วนใหญ่ DBMS ที่ทันสมัยมีเครื่องมือในตัวที่ช่วยให้ผู้ดูแลระบบสามารถกำหนดสิทธิ์ของผู้ใช้ในการเข้าถึงส่วนต่าง ๆ ของฐานข้อมูลได้จนถึงองค์ประกอบเฉพาะ ในกรณีนี้ เป็นไปได้ที่ไม่เพียงแต่จะให้สิทธิ์เข้าถึงแก่ผู้ใช้รายใดรายหนึ่งเท่านั้น แต่ยังระบุประเภทการเข้าถึงที่อนุญาตได้อีกด้วย: สิ่งที่ผู้ใช้เฉพาะรายสามารถทำได้กับข้อมูลเฉพาะ (อ่าน แก้ไข ลบ ฯลฯ) สูงสุดถึง การจัดระเบียบการควบคุมการเข้าถึงฐานข้อมูลตาราง (รายการ) ทั้งหมดนั้นใช้กันอย่างแพร่หลายในระบบคอมพิวเตอร์เช่นในระบบปฏิบัติการเพื่อควบคุมการเข้าถึงไฟล์ ลักษณะเฉพาะของการใช้เครื่องมือนี้เพื่อปกป้องฐานข้อมูลคือไม่เพียง แต่ไฟล์แต่ละไฟล์ (พื้นที่ในเครือข่าย) ฐานข้อมูล ความสัมพันธ์ในฐานข้อมูลเชิงสัมพันธ์) ทำหน้าที่เป็นวัตถุของการป้องกัน) แต่ยังรวมถึงสิ่งอื่นด้วย องค์ประกอบโครงสร้าง DB: องค์ประกอบ ฟิลด์ บันทึก ชุดข้อมูล

1.2 การจัดการความสมบูรณ์ของข้อมูล

การละเมิดความสมบูรณ์ของข้อมูลอาจเกิดจากสาเหตุหลายประการ:

ความล้มเหลวของอุปกรณ์ อิทธิพลทางกายภาพหรือภัยธรรมชาติ

ข้อผิดพลาดของผู้ใช้ที่ได้รับอนุญาตหรือการกระทำโดยเจตนาของผู้ใช้ที่ไม่ได้รับอนุญาต

ข้อผิดพลาดของซอฟต์แวร์ DBMS หรือระบบปฏิบัติการ

ข้อผิดพลาดในโปรแกรมแอปพลิเคชัน

การดำเนินการคำขอของผู้ใช้ที่ขัดแย้งกันร่วมกัน ฯลฯ

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

1.3 การควบคุมการทำงานพร้อมกัน

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

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

จากมุมมองความปลอดภัยของข้อมูล กลไกในการแสดงการเปลี่ยนแปลงในฐานข้อมูลมีความสำคัญมาก หากธุรกรรมถูกขัดจังหวะ เครื่องมือ DBMS ในตัวพิเศษจะดำเนินการสิ่งที่เรียกว่าการย้อนกลับ - คืนฐานข้อมูลกลับสู่สถานะก่อนที่จะเริ่มธุรกรรม (ในความเป็นจริงการย้อนกลับมักจะประกอบด้วยการไม่ทำการเปลี่ยนแปลงที่เกิดจากความคืบหน้า ของธุรกรรมในฐานข้อมูลทางกายภาพ) หากการดำเนินการของธุรกรรมหนึ่งไม่ได้ละเมิดความสมบูรณ์ของฐานข้อมูล ดังนั้นผลจากการดำเนินการหลายธุรกรรมพร้อมกัน ความสมบูรณ์ของฐานข้อมูลอาจถูกละเมิด เพื่อหลีกเลี่ยงข้อผิดพลาดประเภทนี้ DBMS จะต้องสนับสนุนกลไกที่ทำให้แน่ใจว่าธุรกรรมจะจับองค์ประกอบข้อมูลที่แก้ไขจนกว่าการแก้ไขจะเสร็จสมบูรณ์ ซึ่งเรียกว่าการล็อค สิ่งนี้ทำให้แน่ใจได้ว่าไม่มีใครสามารถเข้าถึงองค์ประกอบข้อมูลที่ได้รับการแก้ไขจนกว่าธุรกรรมจะเผยแพร่ การใช้กลไกการล็อคทำให้เกิดปัญหาใหม่ในการควบคุมการทำงานพร้อมกัน โดยเฉพาะอย่างยิ่ง ทำให้เกิดสถานการณ์ที่ธุรกรรมสองรายการล้มเหลว นอกจากนี้ หากธุรกรรมพยายามล็อกออบเจ็กต์ที่ถูกล็อกโดยธุรกรรมอื่น จากนั้นจะต้องรอจนกว่าการล็อกบนออบเจ็กต์จะถูกปล่อยโดยธุรกรรมที่สร้างการล็อกนี้ กล่าวอีกนัยหนึ่ง ธุรกรรมเดียวเท่านั้นที่สามารถล็อคอ็อบเจ็กต์ได้

1.4 การกู้คืนข้อมูล

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

ดังที่คุณทราบ ข้อมูลในสื่อจัดเก็บข้อมูลสมัยใหม่จะถูกเก็บไว้ที่ระดับต่ำสุดในรูปแบบของลำดับบิตของศูนย์และลำดับบิต นั่นคือในรูปแบบของเซกเตอร์ที่มีแม่เหล็ก/มีประจุ (1) หรือไม่มีอยู่ (0)

อย่างไรก็ตาม Windows และระบบปฏิบัติการอื่นๆ ทำงานในระดับที่สูงกว่าโดยใช้ฟังก์ชันต่างๆ ระบบไฟล์- ระบบไฟล์เป็นเลเยอร์ซอฟต์แวร์สำหรับการโต้ตอบที่มีประสิทธิภาพของระบบปฏิบัติการกับข้อมูลบนสื่อทางกายภาพ ประกอบด้วยสองส่วน: พื้นที่ระบบและพื้นที่ข้อมูล พื้นที่ระบบจัดเก็บ บูตเซกเตอร์(รับผิดชอบความสามารถในการบูตจากสื่อและการจดจำที่ถูกต้อง) รวมถึงการจัดเก็บเซกเตอร์จำนวนหนึ่ง ตารางดัชนีไฟล์และข้อมูลบริการอื่นๆ

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

การจัดรูปแบบด่วน - เฉพาะตารางไฟล์เท่านั้นที่ถูกลบ แต่พื้นที่ข้อมูลจะไม่ได้รับผลกระทบ ด้วยการจัดรูปแบบนี้ โอกาสในการกู้คืนจะสูงมาก (โดยที่ไม่มีการเขียนสิ่งอื่นใดลงในแฟลชไดรฟ์ที่ฟอร์แมตแล้ว)

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

การจัดรูปแบบระดับต่ำ - ทุกส่วนของสื่อจัดเก็บข้อมูลจะเต็มไปด้วยศูนย์ หลังจากการฟอร์แมตดังกล่าว แทบจะเป็นไปไม่ได้เลยที่จะกู้คืนสิ่งใดๆ เนื่องจากข้อมูลทั้งหมดถูกทำลายโดยสิ้นเชิง ใน Windows ไม่มีตัวเลือกมาตรฐาน การจัดรูปแบบระดับต่ำดังนั้นแม้จะล้างดิสก์โดยใช้วิธีการแล้วก็ตาม การกู้คืนข้อมูลก็เป็นไปได้ในทางทฤษฎี! ในทำนองเดียวกัน คุณสามารถลองกู้คืนข้อมูลในกรณีที่ระบบไฟล์ขัดข้อง ซึ่งมักเป็นปัญหากับแฟลชไดรฟ์ เมื่อเกิดความล้มเหลวดังกล่าว พื้นที่ระบบมักจะถูกทำลายบางส่วนหรือทั้งหมด และแฟลชไดรฟ์ต้องมีการฟอร์แมต:

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

การฟื้นตัวมีสามระดับหลัก:

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

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

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

1.5 ธุรกรรมและการกู้คืน

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

จำเป็นที่ธุรกรรมจะต้องดำเนินการอย่างสมบูรณ์หรือไม่ดำเนินการเลย

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

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

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

1.6 การย้อนกลับและการคลี่คลายธุรกรรม

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

2 . การรักษาความปลอดภัยฐานข้อมูล

2.1 การวางแผนฐานข้อมูล

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

หากต้องการรับหรือบันทึกข้อมูลในฐานข้อมูล คุณจะต้องเชื่อมต่อ ส่งคำขอ ประมวลผลการตอบสนอง และปิดการเชื่อมต่อ วันนี้มักใช้ทั้งหมดนี้ ภาษาที่มีโครงสร้างแบบสอบถาม (ภาษาแบบสอบถามที่มีโครงสร้าง, SQL) มาดูกันว่าผู้โจมตีสามารถทำอะไรกับแบบสอบถาม SQL ได้บ้าง

ดังที่คุณทราบ PHP ไม่สามารถปกป้องฐานข้อมูลได้ ส่วนต่อไปนี้เป็นการแนะนำเกี่ยวกับพื้นฐานของการเข้าถึงและการใช้ฐานข้อมูลในสคริปต์ PHP

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

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

แอปพลิเคชันไม่ควรเชื่อมต่อกับฐานข้อมูลในฐานะเจ้าของฐานข้อมูลหรือ "ผู้ใช้ขั้นสูง" เนื่องจากอาจทำให้ผู้ใช้สามารถดำเนินการใดๆ เช่น การแก้ไขสคีมา (เช่น การวางตาราง) หรือการลบเนื้อหาทั้งหมด

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

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

2.2 การเชื่อมต่อกับฐานข้อมูล

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

2.3 การจัดเก็บข้อมูลที่เข้ารหัส

SSL/SSH ปกป้องข้อมูลตามเส้นทางจากไคลเอ็นต์ไปยังเซิร์ฟเวอร์เท่านั้น ไม่ใช่ข้อมูลที่จัดเก็บไว้ในฐานข้อมูล SSL เป็นเพียงโปรโตคอลเครือข่าย

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

ที่สุด ทางที่ง่ายในกรณีนี้ - สร้างของคุณเอง ระบบของตัวเองการเข้ารหัสแล้วใช้ในสคริปต์ PHP PHP ช่วยอำนวยความสะดวกในแนวทางนี้ผ่านการมีส่วนขยายเฉพาะ เช่น Mcrypt และ Mhash ซึ่งครอบคลุมอัลกอริธึมการเข้ารหัสที่หลากหลาย โปรแกรมเข้ารหัสข้อมูลที่เก็บไว้และถอดรหัสข้อมูลที่ได้รับ สำหรับ คำอธิบายโดยละเอียดสำหรับรูปแบบการเข้ารหัส โปรดดูลิงก์

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

ตัวอย่าง: การใช้รหัสผ่านที่แฮช

// บันทึกแฮชรหัสผ่าน

$query = sprintf("INSERT INTO users(name,pwd) VALUES("%s","%s");",

// ตรวจสอบความถูกต้องของรหัสผ่านที่ผู้ใช้ป้อน

$query = sprintf("เลือก 1 จากผู้ใช้ โดยที่ name="%s" AND pwd="%s";",

เพิ่มสแลช($ชื่อผู้ใช้), md5($รหัสผ่าน));

$result = pg_exec($การเชื่อมต่อ, $query);

ถ้า (pg_numrows($ผลลัพธ์) > 0) (

echo "ยินดีต้อนรับ, $ชื่อผู้ใช้!";

echo "ใส่รหัสผ่านไม่ถูกต้องสำหรับ $username";

2.4 การฉีด SQL

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

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

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

ตัวอย่าง: การแบ่งผลลัพธ์การสืบค้นออกเป็นหน้าต่างๆ และ... การสร้างผู้ใช้ระดับสูง (PostgreSQL และ MySQL)

$ชดเชย = argv; // ความสนใจ! ไม่มีการตรวจสอบประวัติ!

// ใน PostgreSQL

$result = pg_exec($conn, $query);

$result = mysql_query($query);

โดยทั่วไป ผู้ใช้จะใช้ปุ่ม "ถัดไป" และ "ก่อนหน้า" โดยที่ $offset ฝังอยู่ใน URL โปรแกรมจะถือว่า $offset เป็นตัวเลข อย่างไรก็ตาม อาจมีคนพยายามแทรกซึมโดยการเพิ่มข้อมูลที่เข้ารหัส urlencode() ลงใน URL

// ในกรณีของ PostgreSQL

แทรกลงใน pg_shadow (usename, usesysid, usesuper, usecatupd, passwd)

เลือก "แคร็ก", usesysid, "t", "t", "แคร็ก"

จาก pg_shadow โดยที่ usename="postgres";

// ในกรณีของ MySQL

อัปเดตผู้ใช้ ตั้งค่ารหัสผ่าน = รหัสผ่าน ("แตก") WHERE user = "root";

สิทธิ์ล้าง;

หากสิ่งนี้เกิดขึ้น โปรแกรมจะให้สิทธิ์การเข้าถึงแบบ superuser แก่เขา โปรดทราบว่า 0; ทำหน้าที่ตั้งค่าออฟเซ็ตที่ถูกต้องสำหรับคำขอดั้งเดิมและดำเนินการให้เสร็จสิ้น

เป็นเรื่องปกติที่จะบังคับให้นักแปล SQL ละเว้นแบบสอบถามที่เหลือของนักพัฒนาโดยใช้เครื่องหมายความคิดเห็น SQL ที่ขึ้นต้น -- สัญกรณ์

มีวิธีรับรหัสผ่านผ่านหน้าค้นหาของคุณ ความต้องการของผู้โจมตีทั้งหมดคือตัวแปรที่ไม่สามารถจัดการได้ตัวเดียวซึ่งใช้ในการสืบค้น SQL สามารถใช้คำสั่งย่อย WHERE, ORDER BY, LIMIT และ OFFSET ของแบบสอบถาม SELECT ได้ หากฐานข้อมูลของคุณรองรับโครงสร้าง UNION ผู้โจมตีสามารถเพิ่มคำขออื่นในคำขอดั้งเดิมเพื่อรับรหัสผ่านได้ ในกรณีนี้ การจัดเก็บรหัสผ่านที่เข้ารหัสจะช่วยได้

ตัวอย่าง: การแสดงผลบทความ... และรหัสผ่าน (เซิร์ฟเวอร์ฐานข้อมูลใดๆ)

$query = "เลือก id, ชื่อ, แทรก, ขนาดจากผลิตภัณฑ์

โดยที่ขนาด = "$size"

เรียงลำดับตาม $order LIMIT $limit, $offset;";

$result = odbc_exec($conn, $query);

ส่วนที่คงที่ของคำขอสามารถรวมกับส่วนอื่นได้ ด้วยแบบสอบถาม SELECTซึ่งจะพิมพ์รหัสผ่านทั้งหมด:

สหภาพเลือก "1", concat(uname||"-"||passwd) เป็นชื่อ "1971-01-01", "0" จาก usertable;

หากมีการระบุแบบสอบถามที่คล้ายกัน (โดยใช้ " และ --) ในตัวแปรตัวใดตัวหนึ่งที่ใช้โดย $query การโจมตีจะสำเร็จ

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

ตัวอย่าง: จากการรีเซ็ตรหัสผ่านไปสู่การได้รับสิทธิ์... (เซิร์ฟเวอร์ฐานข้อมูลใด ๆ )

$query = "อัปเดตชุดผู้ใช้ pwd="$pwd" WHERE uid="$uid";";

ผู้โจมตีส่งค่า " หรือ uid เช่น "%admin%"; --, ไปยังตัวแปร $uid เพื่อเปลี่ยนรหัสผ่านของผู้ดูแลระบบ หรือเพียงแค่ตั้งค่า $pwd เป็น "hehehe", admin="yes", trusted=100 " ( โดยมีช่องว่างต่อท้าย) เพื่อรับสิทธิ์ คำขอจะอ่านไม่ออกเช่นนี้:

// $uid == " หรือ uid like"%admin%"; --

$query = "UPDATE usertable SET pwd="..." WHERE uid="" หรือ uid เช่น "%admin%"; --";

// $pwd == "อิอิอิ", admin="ใช่", trusted=100 "

$query = "อัปเดตชุดผู้ใช้ pwd="hehehe", admin="yes", trusted=100 WHERE ...;"

นี่คือตัวอย่างวิธีดำเนินการคำสั่งระดับระบบปฏิบัติการบนเซิร์ฟเวอร์ฐานข้อมูลบางตัว:

ตัวอย่าง: การโจมตีระบบปฏิบัติการของเซิร์ฟเวอร์ฐานข้อมูล (เซิร์ฟเวอร์ MSSQL)

$query = "SELECT * จากผลิตภัณฑ์ โดยที่ id LIKE "%$prod%"";

หากผู้โจมตีส่งค่า a%" exec master..xp_cmdshell "net user test testpass /ADD" -- ไปที่ $prod จากนั้น $query จะมีลักษณะดังนี้:

$query = "เลือก * จากสินค้า

รหัสเช่น "%a%" อยู่ที่ไหน

exec master..xp_cmdshell "ทดสอบผู้ใช้เน็ต testpass /ADD"--";

$result = mssql_query($query);

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

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

2.5 เทคนิคการป้องกัน

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

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

อย่าเชื่อมต่อกับฐานข้อมูลในฐานะผู้ใช้ขั้นสูงหรือเจ้าของ ใช้ผู้ใช้พิเศษที่มีสิทธิ์น้อยที่สุดเสมอ

ตรวจสอบอินพุตของคุณเพื่อให้แน่ใจว่าประเภทข้อมูลตรงกับประเภทข้อมูลที่ต้องการ PHP มีฟังก์ชันการตรวจสอบจำนวนมาก ตั้งแต่ส่วนที่ง่ายที่สุดของส่วน “ฟังก์ชันสำหรับการทำงานกับตัวแปร” และ “ฟังก์ชันสำหรับการประมวลผลประเภทอักขระ” (เช่น is_numeric() และ ctype_digit() ตามลำดับ) ไปจนถึงปกติ นิพจน์เพิร์ล ("นิพจน์ทั่วไปเข้ากันได้กับ Perl")

หากโปรแกรมต้องการตัวเลข ให้ตรวจสอบข้อมูลโดยใช้ is_numeric() หรือเพียงแค่เปลี่ยนประเภทโดยใช้ settype() หรือแม้แต่ใช้การแสดงตัวเลขที่สร้างโดย sprintf()

ตัวอย่าง: การแบ่งหน้าที่ปลอดภัยยิ่งขึ้น

settype($offset, "จำนวนเต็ม");

$query = "SELECT id, ชื่อจากสินค้า เรียงตามชื่อ จำกัด 20 OFFSET $offset;";

// ทำเครื่องหมาย %d ในบรรทัดรูปแบบ การใช้ %s ไม่มีประโยชน์

$query = sprintf("SELECT id, name from products ORDER BY name จำกัด 20 OFFSET %d;",

อินพุตที่ไม่ใช่ตัวเลขที่ส่งผ่านไปยังฐานข้อมูลจะต้องนำหน้าด้วยฟังก์ชัน addslashes() หรือ addcslashes() ตัวอย่างแรกแสดงว่าเครื่องหมายอัญประกาศในส่วนคงที่ของคิวรีไม่เพียงพอ

คุณไม่สามารถแสดงข้อมูลใด ๆ เกี่ยวกับโครงสร้างของฐานข้อมูลได้ในทางใดทางหนึ่ง

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

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

บทสรุป

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

หากต้องการดึงหรือจัดเก็บข้อมูลใดๆ คุณต้องเปิดการเชื่อมต่อกับฐานข้อมูล ส่งแบบสอบถามที่ถูกต้อง ดึงผลลัพธ์ และปิดการเชื่อมต่อ ปัจจุบัน มาตรฐานการสื่อสารที่ใช้กันมากที่สุดคือ Structured Query Language (SQL) คุณควรตระหนักถึงความเป็นไปได้ที่จะถูกโจมตีผ่านการสืบค้น SQL เสมอ

แน่นอนว่า PHP เพียงอย่างเดียวไม่สามารถปกป้องฐานข้อมูลของคุณได้ เอกสารในส่วนนี้ครอบคลุมถึงพื้นฐาน การเข้าถึงที่ปลอดภัยและการจัดการข้อมูลในสคริปต์ PHP

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

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

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

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

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

ขึ้นอยู่กับระบบปฏิบัติการที่ใช้ จำเป็นต้องจัดเตรียมความเป็นไปได้ในการโจมตีไฟล์ต่างๆ รวมถึง ไฟล์ระบบอุปกรณ์ (/dev/ หรือ COM1) ไฟล์การกำหนดค่า(เช่น ไฟล์ /etc/ หรือ .ini) พื้นที่จัดเก็บข้อมูลที่รู้จัก (/home/ เอกสารของฉัน) และอื่นๆ ด้วยเหตุนี้ จึงมักจะง่ายกว่าในการใช้นโยบายความปลอดภัยที่ห้ามทุกสิ่ง ยกเว้นสิ่งที่ได้รับอนุญาตอย่างชัดเจน

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

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

รายชื่อแหล่งที่มาที่ใช้

1. Boychenko I. A. การออกแบบส่วนประกอบของสภาพแวดล้อมที่เชื่อถือได้ DBMS เชิงสัมพันธ์ใช้เทคโนโลยี CASE [ข้อความ] / I. A. Boychenko - Voronezh, 2014. - 251 p.

2.Borri H. Firebird: คู่มือผู้ปฏิบัติงานฐานข้อมูล [ข้อความ]: trans จากอังกฤษ / ฮ. โบริ. - เซนต์ปีเตอร์สเบิร์ก: BHV - ปีเตอร์สเบิร์ก, 2555 - 1104 น.

3. Bronevshchuk E.S. ระบบจัดการฐานข้อมูล [ข้อความ] / E.S. Bronevshchuk, V. I. Burdakov, L. I. Gukov - อ.: การเงินและสถิติ, 2556. - 634 น.

4. Goncharov A. Yu. เข้าถึง 2550. ไดเรกทอรีพร้อมตัวอย่าง [ข้อความ] / A. Yu. - อ.: KUDITS - PRESS, 2554. - 296 น.

5.Deyt K. ระบบฐานข้อมูลเบื้องต้น [ข้อความ] / K. Deyt 7th ed. - อ.: เซนต์ปีเตอร์สเบิร์ก: วิลเลียมส์ 2556 - 325 หน้า

6. Kalenik A. การใช้ความสามารถใหม่ของ MS เซิร์ฟเวอร์ SQL 2548 [ข้อความ] / A. Kalenik. - เซนต์ปีเตอร์สเบิร์ก: ปีเตอร์, 2013. - 334 น.

7. ฐานข้อมูล Connolly T. การออกแบบ การใช้งาน และการสนับสนุน ทฤษฎีและการปฏิบัติ [ข้อความ] / T. Connolly, L Begg, A. Stragan 2nd ed. - อ.: วิลเลียมส์, 2012. - 476 หน้า

8. Motev, A. A. บทเรียน SQL ของฉัน คู่มือการใช้งาน [ข้อความ] / A.A. Motev. - เซนต์ปีเตอร์สเบิร์ก: BHV - ปีเตอร์สเบิร์ก, 2556 - 208 น.

9. Oppel E. เปิดเผยความลับของ SQL [ข้อความ]: ทรานส์ จากอังกฤษ / E. Opel, Jim Kiu, D. A. Terentyeva. - อ.: NT Press, 2555. - 320 น.

10. Promakhina I. M. อินเทอร์เฟซของเครือข่าย DBMS (PC) ด้วยภาษาระดับสูง [ข้อความ] / I. M. Promakhina - M.: ศูนย์คอมพิวเตอร์ RAS, 2011.- 874 p

11. Fufaev E.V. ฐานข้อมูล; [ข้อความ] / E. V. Fufaev, D. E. Fufaev - Academy - Moscow, 2013. - 320 p.

12. ฐานข้อมูล Frost, R. การออกแบบและพัฒนา [ข้อความ]: trans. จากอังกฤษ / R. Frost, D. Day, K. Van Slyke, A. Yu. - ม.: NT Press, 2550. - 592 น.

ภาคผนวก ก

รูปที่ ก.1 - สถาปัตยกรรมที่ใช้ในการสร้างเว็บเพจ

ภาคผนวก ข

รูปที่ B.1 - รูปแบบการรักษาความปลอดภัยของข้อมูล

โพสต์บน Allbest.ru

...

เอกสารที่คล้ายกัน

    พื้นฐานของการรักษาความปลอดภัยของข้อมูลส่วนบุคคล การจำแนกประเภทของภัยคุกคามต่อความปลอดภัยของข้อมูลส่วนบุคคลลักษณะของแหล่งที่มา ฐานข้อมูลส่วนบุคคล การควบคุมการเข้าถึงและการจัดการ การพัฒนามาตรการคุ้มครองข้อมูลส่วนบุคคลในธนาคาร

    วิทยานิพนธ์เพิ่มเมื่อ 23/03/2018

    การพิจารณาปัญหาในการสร้างความมั่นใจในการอนุญาตการใช้ข้อมูลในฐานข้อมูล (การปกป้องข้อมูลจากการดัดแปลงที่ไม่พึงประสงค์ การทำลาย การติดไวรัสโดยโปรแกรมไวรัส) และการควบคุมทางกฎหมายด้านความปลอดภัยโดยใช้ตัวอย่างของ Ms SQL DBMS

    งานหลักสูตรเพิ่มเมื่อ 30/03/2010

    ฐานข้อมูลคืออะไร การแสดงภาพข้อมูลฐานข้อมูล โครงสร้างและคุณสมบัติ ฐานที่ง่ายที่สุดข้อมูล. ลักษณะของคำจำกัดความ ชนิดข้อมูล ความปลอดภัย ลักษณะเฉพาะของการสร้างฐานข้อมูล แนวทางการออกแบบ เงื่อนไขการอ้างอิง- การทำงานกับตาราง

    การนำเสนอเพิ่มเมื่อ 11/12/2010

    แบบฟอร์มข้อมูลที่ให้ไว้ ประเภทข้อมูลหลักที่ใช้ ระดับ กระบวนการข้อมูล- การสืบค้นข้อมูลและการสืบค้นข้อมูล การจัดเก็บข้อมูลเครือข่าย ปัญหาในการพัฒนาและบำรุงรักษาคลังข้อมูล เทคโนโลยีการประมวลผลข้อมูล

    การบรรยายเพิ่มเมื่อ 19/08/2013

    เอนทิตีและการพึ่งพาการทำงานของฐานข้อมูล คุณสมบัติและการเชื่อมต่อ ตารางฐานข้อมูล การสร้างไดอะแกรม ER การจัดระบบการป้อนข้อมูลและการแก้ไข สคีมาฐานข้อมูลเชิงสัมพันธ์ การดำเนินการสอบถามการรับรายงาน การป้องกันฐานข้อมูล

    งานหลักสูตรเพิ่มเมื่อ 02/06/2016

    ฐานข้อมูลประเภทหลัก ระบบจัดการฐานข้อมูล. การวิเคราะห์กิจกรรมและข้อมูลที่ประมวลผลในคลินิก องค์ประกอบของตารางในฐานข้อมูลและความสัมพันธ์ วิธีการกรอกฐานข้อมูลด้วยข้อมูล อัลกอริทึมสำหรับการสร้างฐานข้อมูล

    งานหลักสูตร เพิ่มเมื่อ 12/17/2014

    วิวัฒนาการของแนวคิดฐานข้อมูล ข้อกำหนดที่องค์กรฐานข้อมูลต้องปฏิบัติตาม แบบจำลองการแสดงข้อมูล ภาษา SQL เช่น ภาษามาตรฐานฐานข้อมูล สถาปัตยกรรมฐานข้อมูล สภาพแวดล้อมของเดลฟีเพื่อเป็นเครื่องมือในการพัฒนา DBMS

    วิทยานิพนธ์เพิ่มเมื่อ 26/11/2547

    แนวคิดของฐานข้อมูล แบบจำลองข้อมูล การจำแนกประเภทของฐานข้อมูล ระบบการจัดการฐานข้อมูล ขั้นตอน แนวทางการออกแบบฐานข้อมูล การพัฒนาฐานข้อมูลที่จะทำการบำรุงรักษาเอกสารที่จำเป็นสำหรับกิจกรรมของโรงเรียนกีฬาเยาวชนโดยอัตโนมัติ

    งานหลักสูตร เพิ่มเมื่อ 06/04/2015

    กระบวนการประมวลผลข้อมูล ประสิทธิภาพของระบบสารสนเทศอัตโนมัติ ระบบจัดการฐานข้อมูล. ท้องถิ่นและ ระบบกระจายธนาคารและฐานข้อมูล ขั้นตอนการออกแบบฐานข้อมูล ความแตกต่างในระดับการนำเสนอข้อมูล

    ทดสอบเพิ่มเมื่อ 07/07/2558

    การออกแบบฐาน เข้าถึงข้อมูล- ระบบจัดการฐานข้อมูล. การสร้างและบำรุงรักษาฐานข้อมูล ให้การเข้าถึงข้อมูลและการประมวลผลข้อมูล การกำหนดเป้าหมายและหน้าที่หลักที่ดำเนินการโดยฐานข้อมูล ฐานข้อมูลประเภทหลัก

5.1. วิธีการรักษาความปลอดภัย

DBMS สมัยใหม่สนับสนุนหนึ่งในสองแนวทางที่ได้รับการยอมรับอย่างกว้างขวางในเรื่องความปลอดภัยของข้อมูล กล่าวคือ แนวทางที่เลือกสรรหรือแนวทางบังคับ ในทั้งสองวิธี หน่วยของข้อมูลหรือ "วัตถุข้อมูล" ที่ต้องสร้างระบบความปลอดภัยอาจเป็นได้ทั้งฐานข้อมูลหรือชุดของความสัมพันธ์บางชุด หรือค่าข้อมูลบางส่วนสำหรับคุณลักษณะที่กำหนดภายใน tuple บางตัวในความสัมพันธ์บางอย่าง วิธีการเหล่านี้แตกต่างกันในคุณสมบัติต่อไปนี้:

1. ในกรณีของการควบคุมแบบเลือก ผู้ใช้บางรายมีสิทธิ์ที่แตกต่างกัน (สิทธิ์หรืออำนาจ) เมื่อทำงานกับวัตถุที่แตกต่างกัน นอกจากนี้, ผู้ใช้ที่แตกต่างกันมักจะมีสิทธิ์การเข้าถึงที่แตกต่างกันในวัตถุเดียวกัน ดังนั้นแผนการเลือกตั้งจึงมีความยืดหยุ่นอย่างมาก

2. ในกรณีของการจัดการที่บังคับ ในทางกลับกัน แต่ละออบเจ็กต์ข้อมูลจะได้รับการกำหนดระดับการจำแนกประเภทที่แน่นอน และผู้ใช้แต่ละคนมีระดับการเข้าถึงที่แน่นอน ดังนั้น ด้วยแนวทางนี้ เฉพาะผู้ใช้ที่มีระดับความปลอดภัยที่เหมาะสมเท่านั้นจึงจะสามารถเข้าถึงออบเจ็กต์ข้อมูลบางอย่างได้ ดังนั้นแผนการบังคับจึงค่อนข้างเข้มงวดและคงที่

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

ประการแรก ผลลัพธ์ การตัดสินใจเชิงกลยุทธ์จะต้องรู้จักระบบ (เช่น สร้างขึ้นตามการยืนยันที่ระบุโดยใช้ภาษาที่เหมาะสม) และจัดเก็บไว้ในนั้น (โดยจัดเก็บไว้ในไดเร็กทอรีตามกฎความปลอดภัย หรือที่เรียกว่าสิทธิ์)

ประการที่สอง แน่นอนว่าจะต้องมีวิธีการบางอย่างในการควบคุมคำขอเข้าถึงที่เกี่ยวข้องกับกฎความปลอดภัยที่เกี่ยวข้อง (ในที่นี้ “คำขอ การเข้าถึง” หมายถึงการรวมกันของการดำเนินการที่ร้องขอ วัตถุที่ร้องขอ และผู้ใช้ที่ร้องขอ) การตรวจสอบนี้ดำเนินการโดยระบบย่อยการรักษาความปลอดภัยของ DBMS หรือที่เรียกว่าระบบย่อยสิทธิอำนาจ

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



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

วิธีการควบคุมการเข้าถึงที่ระบุไว้ข้างต้นเป็นส่วนหนึ่งของการจำแนกระดับความปลอดภัยโดยทั่วไป ก่อนอื่น เอกสารเหล่านี้กำหนดคลาสความปลอดภัยสี่คลาส ได้แก่ D, C, B และ A โดยคลาส D มีความปลอดภัยน้อยที่สุด คลาส C มีความปลอดภัยมากกว่าคลาส D เป็นต้น คลาส D ให้การป้องกันน้อยที่สุด คลาส C ให้การป้องกันแบบเลือกสรร คลาส B ให้การป้องกันที่จำเป็น และคลาส A ให้การป้องกันที่ได้รับการพิสูจน์แล้ว

การป้องกันแบบเลือกสรร คลาส C แบ่งออกเป็นสองคลาสย่อยคือ C1 และ C2 (โดยที่คลาสย่อย C1 มีความปลอดภัยน้อยกว่าคลาสย่อย C2) ซึ่งสนับสนุนการควบคุมการเข้าถึงแบบเลือกในแง่ที่ว่าการควบคุมการเข้าถึงจะขึ้นอยู่กับดุลยพินิจของเจ้าของข้อมูล

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

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

การป้องกันภาคบังคับ คลาส B มีข้อกำหนดสำหรับวิธีควบคุมการเข้าถึงแบบบังคับ และแบ่งออกเป็นคลาสย่อยสามคลาส - B1, B2 และ B3 (โดยที่ B1 มีความปลอดภัยน้อยที่สุด และ B3 เป็นคลาสย่อยที่ปลอดภัยที่สุด)

คลาส B1 ต้องการ "การรักษาความปลอดภัยที่มีป้ายกำกับ" (หมายความว่าแต่ละออบเจ็กต์ข้อมูลจะต้องมีป้ายกำกับระดับการจำแนกประเภท เช่น จำแนกประเภท เป็นกรรมสิทธิ์ ฯลฯ) รวมถึงการสื่อสารอย่างไม่เป็นทางการเกี่ยวกับกลยุทธ์ความปลอดภัยที่มีอยู่

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

ตามข้อกำหนดของคลาส B3 จำเป็นต้องให้การสนับสนุนเพิ่มเติมสำหรับการตรวจสอบและการกู้คืนข้อมูลตลอดจนการแต่งตั้งผู้ดูแลระบบโหมดความปลอดภัย

การป้องกันที่ได้รับการพิสูจน์แล้ว คลาส A นั้นปลอดภัยที่สุดและต้องการการพิสูจน์ทางคณิตศาสตร์ว่าวิธีการรักษาความปลอดภัยที่กำหนดนั้นเข้ากันได้และเพียงพอกับกลยุทธ์ความปลอดภัยที่ระบุ

แม้ว่า DBMS เชิงพาณิชย์บางแห่งจะมีการรักษาความปลอดภัยแบบบังคับที่ระดับ B1 แต่โดยทั่วไปแล้ว DBMS เหล่านั้นจะให้การควบคุมแบบเลือกที่ระดับ C2

5.2. การควบคุมการเข้าถึงแบบเลือก

การควบคุมการเข้าถึงแบบเลือกได้รับการสนับสนุนโดย DBMS จำนวนมาก การควบคุมการเข้าถึงแบบเลือกได้รับการสนับสนุนในภาษา SQL

โดยทั่วไป ระบบรักษาความปลอดภัยของ DBMS ดังกล่าวจะขึ้นอยู่กับองค์ประกอบสามประการ:

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

2. วัตถุฐานข้อมูล ตามมาตรฐาน SQL2 วัตถุที่ได้รับการป้องกันในฐานข้อมูล ได้แก่ ตาราง มุมมอง โดเมน และ ผู้ใช้กำหนดชุดอักขระ DBMS เชิงพาณิชย์ส่วนใหญ่จะขยายรายการของออบเจ็กต์โดยเพิ่มขั้นตอนการจัดเก็บและออบเจ็กต์อื่นๆ

3. สิทธิพิเศษ สิทธิ์แสดงชุดของการดำเนินการที่สามารถทำได้บนวัตถุเฉพาะ ตัวอย่างเช่น ผู้ใช้มีสิทธิ์ในการดูตาราง

5.3. การควบคุมการเข้าถึงภาคบังคับ

วิธีการควบคุมการเข้าถึงภาคบังคับจะนำไปใช้กับฐานข้อมูลที่ข้อมูลมีโครงสร้างที่ค่อนข้างคงที่หรือเข้มงวด เช่น เป็นเรื่องปกติสำหรับองค์กรภาครัฐหรือกองทัพ ตามที่ระบุไว้แล้ว แนวคิดพื้นฐานคือแต่ละออบเจ็กต์ข้อมูลมีการจำแนกระดับหนึ่ง เช่น ความลับ ความลับสุดยอด สำหรับการใช้งานอย่างเป็นทางการ ฯลฯ และผู้ใช้แต่ละคนมีระดับการกวาดล้างด้านความปลอดภัยที่มีการไล่ระดับเดียวกันกับในการจำแนกระดับ . สันนิษฐานว่าระดับเหล่านี้สร้างลำดับชั้นที่เข้มงวด เช่น ความลับสุดยอด ® ความลับ ® สำหรับการใช้งานอย่างเป็นทางการ เป็นต้น จากนั้น จากข้อมูลนี้ สามารถกำหนดกฎความปลอดภัยง่ายๆ สองข้อได้:

1. ผู้ใช้สามารถเข้าถึงออบเจ็กต์ได้ก็ต่อเมื่อระดับการกวาดล้างของเขามากกว่าหรือเท่ากับระดับการจำแนกประเภทของออบเจ็กต์

2. ผู้ใช้สามารถแก้ไขออบเจ็กต์ได้ก็ต่อเมื่อระดับการกวาดล้างของเขาเท่ากับระดับการจำแนกประเภทของออบเจ็กต์

กฎข้อที่ 1 ค่อนข้างชัดเจน แต่กฎข้อ 2 จำเป็นต้องมีการชี้แจงเพิ่มเติม ประการแรกควรสังเกตว่ากฎข้อที่สองสามารถกำหนดได้แตกต่างกันดังนี้: ข้อมูลใด ๆ ที่บันทึกโดยผู้ใช้บางรายจะได้รับระดับที่เท่ากับระดับการจัดหมวดหมู่ของผู้ใช้รายนี้โดยอัตโนมัติ กฎดังกล่าวมีความจำเป็น เช่น เพื่อป้องกันไม่ให้ผู้ใช้ที่มีการรักษาความปลอดภัยเขียนข้อมูลลับลงในไฟล์ที่มีระดับการจัดหมวดหมู่ต่ำกว่า ซึ่งจะละเมิดระบบรักษาความปลอดภัยทั้งหมด

ใน เมื่อเร็วๆ นี้วิธีการควบคุมการเข้าถึงภาคบังคับแพร่หลายมากขึ้น ข้อกำหนดสำหรับการควบคุมการเข้าถึงดังกล่าวระบุไว้ในเอกสารสองฉบับ ซึ่งเรียกอย่างไม่เป็นทางการว่า Orange Book และ Lavender Book สมุดสีส้มแสดงรายการชุดข้อกำหนดด้านความปลอดภัยสำหรับ Trusted Computing Base และสมุดสีชมพูตีความข้อกำหนดเหล่านี้สำหรับระบบการจัดการฐานข้อมูล

5.4. การเข้ารหัสข้อมูล

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

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

5.5. เส้นทางการตรวจสอบการดำเนินงานที่ดำเนินการ

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

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

2. เทอร์มินัลที่เรียกใช้การดำเนินการ

3. ผู้ใช้ที่ระบุการดำเนินการ;

4. วันและเวลาที่เริ่มดำเนินการ

5. ความสัมพันธ์พื้นฐาน สิ่งอันดับ และคุณลักษณะที่เกี่ยวข้องในกระบวนการดำเนินการดำเนินการ

6. ค่านิยมเก่า;

7. ค่านิยมใหม่

ดังที่กล่าวไว้ข้างต้น แม้กระทั่งการระบุข้อเท็จจริงที่ว่าระบบที่กำหนดรองรับการตรวจสอบการเฝ้าระวัง ในบางกรณีก็มีความสำคัญมากในการป้องกันการเข้าระบบโดยไม่ได้รับอนุญาต

5.6. การสนับสนุนด้านความปลอดภัย SQL

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

5.7. คำสั่ง GRANT และ REVOKE

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

โปรดทราบว่าผู้สร้างวัตถุใดๆ จะได้รับสิทธิ์ทั้งหมดบนวัตถุนั้นโดยอัตโนมัติ

มาตรฐาน SQL1 กำหนดสิทธิ์ต่อไปนี้สำหรับตาราง:

1. SELECT – ให้คุณอ่านข้อมูลจากตารางหรือมุมมอง

INSERT – ช่วยให้คุณสามารถแทรกบันทึกใหม่ลงในตารางหรือมุมมอง

UPDATE – ให้คุณแก้ไขบันทึกจากตารางหรือมุมมอง

DELETE – ช่วยให้คุณสามารถลบบันทึกออกจากตารางหรือมุมมอง

มาตรฐาน SQL2 ได้ขยายรายการสิทธิ์สำหรับตารางและมุมมอง:

1. INSERT ในแต่ละคอลัมน์ คล้ายกับสิทธิ์ UPDATE

2. ข้อมูลอ้างอิง – สำหรับการสนับสนุนคีย์ต่างประเทศ

นอกเหนือจากที่ระบุไว้ข้างต้น สิทธิ์การใช้งานได้ถูกเพิ่มให้กับออบเจ็กต์ฐานข้อมูลอื่นๆ

นอกจากนี้ DBMS เชิงพาณิชย์ส่วนใหญ่ยังรองรับสิทธิพิเศษเพิ่มเติม เช่น:

1. ALTER – อนุญาตให้คุณแก้ไขโครงสร้างตาราง (DB2, Oracle)

2. EXECUTE – อนุญาตให้คุณดำเนินการตามขั้นตอนที่เก็บไว้

ผู้สร้างวัตถุยังได้รับสิทธิ์ในการให้สิทธิ์การเข้าถึงแก่ผู้ใช้รายอื่นโดยใช้คำสั่ง GRANT ต่อไปนี้เป็นไวยากรณ์ของคำสั่ง GRANT:

GRANT (SELECT|INSERT|DELETE|(คอลัมน์ UPDATE, ...)), ...

บนโต๊ะถึง (ผู้ใช้ | สาธารณะ)

สิทธิ์ INSERT และ UPDATE (แต่ไม่ใช่สิทธิ์ SELECT ซึ่งแปลกมาก) สามารถตั้งค่าบนคอลัมน์ที่กำหนดโดยเฉพาะได้

หากมีการระบุคำสั่ง WITH GRANT OPTION นั่นหมายความว่าผู้ใช้ที่ระบุมีสิทธิ์พิเศษสำหรับออบเจ็กต์ที่ระบุ - สิทธิ์ในการให้สิทธิ์ ในทางกลับกัน หมายความว่าพวกเขาสามารถให้สิทธิ์แก่ผู้ใช้รายอื่นเพื่อทำงานกับออบเจ็กต์นี้ได้

ตัวอย่างเช่น ให้สิทธิ์แก่ผู้ใช้ Ivanov ในการเลือกและแก้ไขนามสกุลในตารางนักเรียนโดยมีสิทธิ์ในการให้สิทธิ์

ให้สิทธิ์เลือก อัปเดต StName

เกี่ยวกับนักเรียนถึง Ivanov ด้วยตัวเลือกการให้ทุน

หากผู้ใช้ A ให้สิทธิ์บางอย่างแก่ผู้ใช้ B คนอื่น เขาสามารถเพิกถอนสิทธิ์เหล่านั้นสำหรับผู้ใช้ B ได้ในภายหลัง การเพิกถอนสิทธิ์ทำได้โดยใช้คำสั่ง REVOKE โดยมีไวยากรณ์ต่อไปนี้

เพิกถอน ((SELECT | INSERT | DELETE | UPDATE),...|สิทธิ์ทั้งหมด)

บนโต๊ะ… จาก (ผู้ใช้ | สาธารณะ),… (CASCADE | จำกัด)

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

ตัวอย่างเช่น: ลบสิทธิ์จากผู้ใช้ Ivanov เพื่อแก้ไขนามสกุลในตารางนักเรียน ลบสิทธิ์นี้ออกจากผู้ใช้ทั้งหมดที่ Ivanov มอบให้

เกี่ยวกับนักเรียนจาก Ivanov CASCADE

การลบโดเมน ตาราง คอลัมน์ หรือมุมมองจะเป็นการลบสิทธิ์ทั้งหมดบนออบเจ็กต์เหล่านั้นสำหรับผู้ใช้ทั้งหมดโดยอัตโนมัติ

5.8. มุมมองและความปลอดภัย

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

บทสรุป

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

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

  • ดุดคินา อนาสตาเซีย เซอร์เกฟนา, ปริญญาตรี, นักศึกษา
  • มหาวิทยาลัยเกษตรกรรมแห่งรัฐบัชคีร์
  • การป้องกัน
  • PHPMYADMIN
  • MySQL
  • ฐานข้อมูล

บทความนี้กล่าวถึงทิศทางหลักของการปกป้องข้อมูลที่จัดเก็บหรือประมวลผลในระบบการจัดการฐานข้อมูล (DBMS) อธิบายวิธีการปกป้องความลับและความสมบูรณ์ของข้อมูลโดยใช้เครื่องมือที่ใช้งานง่ายที่สร้างไว้ใน DBMS

  • เทคโนโลยีสารสนเทศเพื่อการปฏิสัมพันธ์ในหน่วยงานเทศบาล
  • คุณสมบัติบางประการของโครงสร้างแบบขยายเกี่ยวกับการกระจายของท่อร่วม Bi-metric
  • ในคลาสของโครงสร้าง Bi-metric แบบขยายเกี่ยวกับการกระจายของท่อร่วมย่อย Riemannian
  • การแสดงข้อมูลทางสถิติด้วยภาพโดยใช้แผนภูมิฟอง

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

วิธีการหลักในการปกป้องข้อมูลมีดังต่อไปนี้:

  • การป้องกันด้วยรหัสผ่าน
  • การป้องกันเขตข้อมูลและบันทึกของตารางฐานข้อมูล
  • การสร้างสิทธิ์การเข้าถึงวัตถุฐานข้อมูล
  • การเข้ารหัสข้อมูลและโปรแกรม

การป้องกันฐานข้อมูลดำเนินการในสองระดับ:

  • ในระดับรหัสผ่าน
  • ในระดับผู้ใช้ (การป้องกันบัญชีผู้ใช้และวัตถุที่ระบุ)

PhpMyAdmin เป็นโปรแกรมที่เขียนด้วย PHP และออกแบบมาเพื่อจัดการ เซิร์ฟเวอร์ MySQLผ่านทางเวิลด์ไวด์เว็บ phpMyAdmin รองรับการทำงานที่หลากหลายบน MySQL การดำเนินการที่ใช้บ่อยที่สุดได้รับการสนับสนุนโดยใช้ หน้าจอผู้ใช้(การจัดการฐานข้อมูล ตาราง ฟิลด์ ความสัมพันธ์ ดัชนี ผู้ใช้ สิทธิ์ ฯลฯ) ในเวลาเดียวกัน คุณสามารถดำเนินการใดๆ ได้โดยตรง แบบสอบถาม SQL.

การดูแลความปลอดภัยของข้อมูลของโครงการที่กำลังพัฒนานั้นดำเนินการในหลายระดับ ในระดับแรก การปกป้องข้อมูลจะได้รับการรับรองโดยระบบ “phpMyAdmin” เอง โดยเริ่มต้นจากการลงชื่อเข้าใช้แผงควบคุมซึ่งแผงควบคุมกำหนดให้คุณต้องป้อนข้อมูลเข้าสู่ระบบและรหัสผ่านของคุณ

การป้องกันอีกระดับหนึ่งมีให้โดย MySQL DBMS และยังจำกัดสิทธิ์การเข้าถึงอีกด้วย


รูปที่ 2 ภาพรวมบัญชี

นอกจากนี้ยังเป็นไปได้ที่จะจำกัดการเข้าถึงไม่เพียงแต่กับระบบการจัดการฐานข้อมูลเท่านั้น แต่ยังแยกจากฐานข้อมูล ตารางฐานข้อมูล บันทึกของตารางเฉพาะ และแม้แต่ค่าของฟิลด์ของตารางหรือบันทึก เป็นที่น่าสังเกตว่าฟังก์ชันการเข้ารหัสในตัวไม่มีอยู่ใน DBMS ทั้งหมด ดังนั้นวิธีนี้จึงไม่สามารถเรียกได้ว่าเป็นสากล DBMS นี้มีฟังก์ชันการเข้ารหัสสองชุดที่คล้ายกัน โดยชุดหนึ่งใช้อัลกอริทึม DES และอีกชุดคือ AES นอกจากนี้ MySQL ยังใช้อัลกอริธึมการแฮชหลายอย่าง ชุดฟังก์ชันการเข้ารหัสของ DBMS นี้มีลักษณะดังนี้:

ตารางที่ 1. ฟังก์ชันการเข้ารหัสของ DBMS

ฟังก์ชันการเข้ารหัสข้อมูล AES ใช้คีย์เข้ารหัส 128 บิต เช่น การเข้ารหัสด้วยคีย์ 192 บิตและ 256 บิตที่ได้รับจากมาตรฐาน AES จะไม่ถูกนำมาใช้ใน MySQL คีย์การเข้ารหัสถูกระบุอย่างชัดเจนว่าเป็นหนึ่งในพารามิเตอร์ฟังก์ชัน ในทางตรงกันข้าม ฟังก์ชัน DES_ENCRYPT() และ DES_DECRYPT() ซึ่งเข้ารหัสโดยใช้อัลกอริธึม TripleDES นอกเหนือจากการระบุคีย์เข้ารหัสอย่างชัดเจน ยังอนุญาตให้ ตัวเลือกที่ง่ายที่สุดการจัดการคีย์ในรูปแบบ ไฟล์สำคัญที่มีค่าคีย์ตัวเลข อย่างไรก็ตาม ฟังก์ชันเหล่านี้จะถูกปิดใช้งานตามค่าเริ่มต้น หากต้องการใช้งาน คุณต้องเปิดใช้งานการรองรับโปรโตคอล SSL ในการกำหนดค่า DBMS

ฟังก์ชัน ENCRYPT() สามารถใช้ได้เฉพาะกับระบบปฏิบัติการเท่านั้น ครอบครัวยูนิกซ์เนื่องจากเป็นการเข้ารหัสข้อมูลโดยใช้ การโทรของระบบห้องใต้ดิน() สำหรับฟังก์ชันแฮชที่ใช้ เอกสาร MySQL มีคำเตือนว่าอัลกอริธึมพื้นฐานใช้งานไม่ได้ (ซึ่งเขียนไว้โดยละเอียดโดยเฉพาะ ดังนั้นจึงควรใช้ด้วยความระมัดระวัง อย่างไรก็ตาม MySQL ยังไม่มีฟังก์ชันแฮชที่มีประสิทธิภาพมากขึ้นมาแทนที่ รายการที่มีอยู่ข้างต้น ฟังก์ชั่นการเข้ารหัสยังใช้งานง่ายมาก ตัวอย่างเช่น แบบสอบถามต่อไปนี้แทรกค่า “ข้อความ” ลงในตารางตาราง โดยเข้ารหัสด้วยคีย์ “รหัสผ่าน”: INSERT INTO table VALUES (1, AES_ENCRYPT("text", "password")); โปรดทราบว่ารูปแบบของฟิลด์ที่ใช้เขียนค่าที่เข้ารหัสจะต้องเป็นไปตามข้อจำกัดที่กำหนดโดยอัลกอริธึมการเข้ารหัสที่ใช้ - ใน ในกรณีนี้ต้องเป็นไบนารี (เช่น พิมพ์ VARBINARY) และถือว่าการจัดตำแหน่งตามขนาดบล็อก 128 บิตของอัลกอริทึม AES

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

บรรณานุกรม

  1. Melnikov, V.P. ความปลอดภัยของข้อมูลและการปกป้องข้อมูล / รองประธาน Melnikov
  2. S.A.Kleimenov, A.M.Petrakov // ฉบับที่ 3, ลบแล้ว - อ.: Academy, 2551. - 336 น.
  3. พานาเซนโก เอส.พี. การปกป้องข้อมูลที่ครอบคลุม // เทคโนโลยีสารสนเทศ. -2544 - ฉบับที่ 3 - หน้า 14-16
  4. โปรแกรมงานวินัย "ความมั่นคงปลอดภัยสารสนเทศ": ทิศทางการฝึกอบรม 080500 สารสนเทศธุรกิจ [ ทรัพยากรอิเล็กทรอนิกส์]: ประวัติการฝึกอบรม ระบบสารสนเทศในธุรกิจ: วุฒิการศึกษาระดับบัณฑิตศึกษา (ปริญญา) ปริญญาตรี / Bashkir State Agrarian University, [ภาควิชา วิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คอมพ์ เอ.อาร์. บาซีรอฟ] - อูฟา: [ข. i.], 2013. - 16 น. - บี.ซี.
  5. เว็บไซต์ เว็บแอปพลิเคชัน PHP"phpMyAdmin" [ทรัพยากรอิเล็กทรอนิกส์] – โหมดการเข้าถึง: http://www.phpmyadmin.net/home_page/ ฟรี

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

การรักษาความปลอดภัยของข้อมูลหมายถึงการปกป้องข้อมูลจากผลกระทบโดยไม่ได้ตั้งใจและโดยเจตนาซึ่งมีลักษณะทางธรรมชาติหรือเทียมซึ่งอาจก่อให้เกิดความเสียหายต่อเจ้าของหรือผู้ใช้ข้อมูล

เพื่อปกป้องข้อมูลในฐานข้อมูล ความปลอดภัยของข้อมูลในด้านต่อไปนี้เป็นสิ่งสำคัญที่สุด (เกณฑ์ของยุโรป):

เงื่อนไขการเข้าถึง (ความสามารถในการรับบริการข้อมูลที่จำเป็น);

ความสมบูรณ์ (ความสอดคล้องของข้อมูล, การป้องกันจากการถูกทำลายและการเปลี่ยนแปลงที่ไม่ได้รับอนุญาต);

การรักษาความลับ (การป้องกันจากการอ่านโดยไม่ได้รับอนุญาต)

ปัญหาในการรับรองความปลอดภัยของข้อมูลมีความซับซ้อน ดังนั้นจึงควรพิจารณาวิธีแก้ปัญหา ระดับที่แตกต่างกัน: นิติบัญญัติ การบริหาร ขั้นตอนและซอฟต์แวร์และเทคนิค ปัจจุบันปัญหาการพัฒนา กรอบกฎหมาย, การให้ การใช้งานที่ปลอดภัยระบบข้อมูล.

มาตรการหลักด้านซอฟต์แวร์และฮาร์ดแวร์ ซึ่งการใช้จะช่วยแก้ปัญหาข้างต้นบางส่วน ได้แก่:

การรับรองความถูกต้องและการระบุตัวตนของผู้ใช้

การควบคุมการเข้าถึงฐานข้อมูล

การรักษาความสมบูรณ์ของข้อมูล

การบันทึกและการตรวจสอบ

การป้องกันการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์

ภาพสะท้อนของภัยคุกคามเฉพาะต่อ DBMS

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

การควบคุมการเข้าถึงฐานข้อมูลขึ้นอยู่กับการดำเนินการตามชุดการดำเนินการขั้นต่ำต่อไปนี้:

การควบคุมการเข้าถึงแบบสุ่ม

สร้างความมั่นใจในความปลอดภัยของการใช้วัตถุซ้ำ

การใช้ฉลากความปลอดภัย

บังคับควบคุมการเข้าถึง

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

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

ควรให้ความสนใจกับการรับรองความปลอดภัยของการนำฐานข้อมูลกลับมาใช้ซ้ำโดยอาสาสมัคร นี่หมายถึงการลิดรอนผู้ใช้ทุกคนที่ออกจากองค์กรของสิทธิ์ในการเข้าสู่ระบบข้อมูล

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

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

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

การบันทึกและตรวจสอบประกอบด้วยสิ่งต่อไปนี้:

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

การประเมินผลที่อาจเกิดขึ้นจากการละเมิด

ให้ความช่วยเหลือ;

การจัดระเบียบการป้องกันข้อมูลจากการกระทำของผู้ใช้ที่ผิดกฎหมาย

ปัญหาการป้องกันการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ใน ระบบข้อมูลไม่ใช่เฉพาะ DBMS เพื่อให้มั่นใจในการปกป้องข้อมูล จึงมีบริการรักษาความปลอดภัย ซึ่งประกอบด้วยการตรวจสอบสิทธิ์ การเข้ารหัส และการอนุญาต

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