ความปลอดภัยของฐานข้อมูล (Database Security)
มีหลายชั้น แต่ประเด็นหลักคือ:
การยืนยันตัวตน (Authentication)
ยืนยันว่าผู้เข้าถึงเป็นบุคคลที่ถูกต้อง สามารถทำได้ที่ระดับ OS หรือระดับฐานข้อมูล ใช้ระบบต่างๆ เช่น retina scanner, biometrics เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
การอนุญาต (Authorization)
สิทธิ์ที่ Database Administrator มอบให้ ผู้ใช้เห็นเฉพาะข้อมูลที่ได้รับอนุญาตเท่านั้น
ประเภทของสิทธิ์ (Permissions):
- Primary Permission: ให้สาธารณะและโดยตรง
- Secondary Permission: ให้กลุ่ม และสืบทอดให้สมาชิกกลุ่ม
- Public Permission: ให้ผู้ใช้ทุกคน
- Context sensitive permission: ให้เฉพาะผู้ใช้บางกลุ่มที่เกี่ยวกับข้อมูลละเอียดอ่อน
ระดับการอนุญาต (Authorization Categories):
- System Administrator: สิทธิ์สูงสุด สามารถรันคำสั่ง DBA เช่น restore, upgrade
- System Control: สิทธิ์ควบคุมสูงสุด บำรุงรักษาได้ แต่เข้าถึงข้อมูลโดยตรงไม่ได้
- System Maintenance: ระดับต่ำกว่า System Control บำรุงรักษาภายใน instance
- System Monitor: ตรวจสอบและ snapshot ฐานข้อมูล
ความสมบูรณ์ของข้อมูล (Database Integrity)
ความถูกต้อง ความสม่ำเสมอ และความสมบูรณ์ของข้อมูล บังคับด้วย 3 constraints:
- Entity Integrity: เกี่ยวกับ Primary Key ทุกตารางต้องมี PK ที่ระบุแถวได้อย่างเดียวและไม่เป็น NULL
- Referential Integrity: เกี่ยวกับ Foreign Key คีย์ของ relation หนึ่งที่ถูกอ้างอิงใน relation อื่น
- Domain Integrity: ทุกคอลัมน์ต้องมี domain ที่กำหนดไว้ชัดเจน