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

บทนี้อธิบายถึงความปลอดภัยของฐานข้อมูล

บทนำ

ฐานข้อมูล DB2 และฟังก์ชันสามารถจัดการได้โดยโหมดควบคุมความปลอดภัยสองโหมด:

  1. Authentication
  2. Authorization

การรับรองความถูกต้อง

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

ความปลอดภัยของฐานข้อมูลสามารถจัดการได้จากภายนอกระบบฐานข้อมูล db2 กระบวนการตรวจสอบความปลอดภัยบางประเภทมีดังนี้

  • ขึ้นอยู่กับการรับรองความถูกต้องของระบบปฏิบัติการ
  • Lightweight Directory Access Protocol (LDAP)

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

การอนุญาต

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

วิธีการอนุญาตต่างๆสำหรับการอนุญาตมีดังนี้

Primary permission: ให้รหัสการอนุญาตโดยตรง

Secondary permission: มอบให้กับกลุ่มและบทบาทหากผู้ใช้เป็นสมาชิก

Public permission: มอบให้กับผู้ใช้ทุกคนแบบสาธารณะ

Context-sensitive permission: มอบให้กับบทบาทบริบทที่เชื่อถือได้

สามารถให้สิทธิ์แก่ผู้ใช้ตามหมวดหมู่ด้านล่าง:

  • การอนุญาตระดับระบบ
  • ผู้ดูแลระบบ [SYSADM]
  • การควบคุมระบบ [SYSCTRL]
  • การบำรุงรักษาระบบ [SYSMAINT]
  • การตรวจสอบระบบ [SYSMON]

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

  • การอนุญาตระดับฐานข้อมูล
  • ผู้ดูแลระบบความปลอดภัย [SECADM]
  • ผู้ดูแลระบบฐานข้อมูล [DBADM]
  • การควบคุมการเข้าถึง [ACCESSCTRL]
  • การเข้าถึงข้อมูล [DATAACCESS]
  • ผู้ดูแลระบบ SQL [SQLADM]
  • ผู้ดูแลระบบการจัดการภาระงาน [WLMADM]
  • อธิบาย [EXPLAIN]

เจ้าหน้าที่ให้การควบคุมภายในฐานข้อมูล หน่วยงานอื่น ๆ สำหรับฐานข้อมูลรวมถึง LDAD และ CONNECT

  • Object-Level Authorization: การอนุญาตระดับออบเจ็กต์เกี่ยวข้องกับการตรวจสอบสิทธิ์เมื่อมีการดำเนินการกับวัตถุ
  • Content-based Authorization: ผู้ใช้สามารถอ่านและเขียนการเข้าถึงแต่ละแถวและคอลัมน์ในตารางเฉพาะโดยใช้ Label-based access Control [LBAC]

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

  • ชื่อการอนุญาตของผู้ใช้
  • กลุ่มใดเป็นของผู้ใช้
  • บทบาทใดที่มอบให้กับผู้ใช้โดยตรงหรือโดยอ้อมให้กับกลุ่ม
  • สิทธิ์ที่ได้รับผ่านบริบทที่เชื่อถือได้

ในขณะที่ทำงานกับคำสั่ง SQL โมเดลการอนุญาต DB2 จะพิจารณาการรวมกันของสิทธิ์ต่อไปนี้:

  • สิทธิ์ที่มอบให้กับ ID การอนุญาตหลักที่เชื่อมโยงกับคำสั่ง SQL
  • รหัสการอนุญาตรองที่เชื่อมโยงกับคำสั่ง SQL
  • มอบให้แก่ PUBLIC
  • มอบให้กับบทบาทบริบทที่เชื่อถือได้

หน่วยงานระดับอินสแตนซ์

ให้เราหารือเกี่ยวกับหน่วยงานที่เกี่ยวข้องบางตัวอย่าง

ผู้มีอำนาจดูแลระบบ (SYSADM)

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

  • อัพเกรดฐานข้อมูล
  • กู้คืนฐานข้อมูล
  • อัปเดตไฟล์คอนฟิกูเรชันตัวจัดการฐานข้อมูล

ผู้มีอำนาจควบคุมระบบ (SYSCTRL)

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

ผู้ใช้ที่มีสิทธิ SYSCTRL สามารถดำเนินการดังต่อไปนี้:

  • การอัพเดตไดเร็กทอรีฐานข้อมูลโหนดหรือ Distributed Connect Service (DCS)
  • บังคับให้ผู้ใช้ออกจากระดับระบบ
  • การสร้างหรือการทิ้งระดับฐานข้อมูล
  • การสร้างแก้ไขหรือวางพื้นที่ตาราง
  • ใช้พื้นที่โต๊ะใดก็ได้
  • การกู้คืนฐานข้อมูล

ผู้มีอำนาจในการบำรุงรักษาระบบ (SYSMAINT)

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

เฉพาะผู้ใช้ที่มี SYSMAINT หรือหน่วยงานระบบระดับสูงกว่าเท่านั้นที่สามารถทำงานต่อไปนี้

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

ผู้ใช้ที่มี SYSMAINT สามารถทำงานต่อไปนี้:

  • ค้นหาสถานะของพื้นที่ตาราง
  • การอัปเดตไฟล์ประวัติบันทึก
  • การจัดระเบียบตารางใหม่
  • การใช้ RUNSTATS (สถิติแค็ตตาล็อกคอลเลคชัน)

ผู้มีอำนาจตรวจสอบระบบ (SYSMON)

ด้วยสิทธิ์นี้ผู้ใช้สามารถตรวจสอบหรือถ่ายภาพรวมของอินสแตนซ์ตัวจัดการฐานข้อมูลหรือฐานข้อมูลได้ สิทธิ์ SYSMON ช่วยให้ผู้ใช้สามารถรันงานต่อไปนี้:

  • รับสวิตช์มอนิเตอร์ตัวจัดการฐานข้อมูล
  • รับสวิตช์ MONITOR
  • รับ SNAPSHOT
  • รายการ
    • แสดงรายการฐานข้อมูลที่ใช้งานอยู่
    • รายการแอปพลิเคชัน
    • แสดงรายชื่อกลุ่มฐานข้อมูลฐานข้อมูล
    • แสดงรายการแอปพลิเคชัน DCS
    • รายการแพ็คเกจ
    • ตารางรายการ
    • LIST ตารางคอนเทนเนอร์
    • ตารางรายการ
    • รายการยูทิลิตี้
  • รีเซ็ต MONITOR
  • อัปเดตสวิตช์มอนิเตอร์

เจ้าหน้าที่ฐานข้อมูล

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

ACCESSCTRL: อนุญาตให้อนุญาตและเพิกถอนสิทธิ์ของอ็อบเจ็กต์และผู้มีอำนาจในฐานข้อมูลทั้งหมด

BINDADD: อนุญาตให้สร้างแพ็คเกจใหม่ในฐานข้อมูล

CONNECT: อนุญาตให้เชื่อมต่อกับฐานข้อมูล

CREATETAB: อนุญาตให้สร้างตารางใหม่ในฐานข้อมูล

CREATE_EXTERNAL_ROUTINE: อนุญาตให้สร้างโพรซีเดอร์ที่จะใช้โดยแอพพลิเคชั่นและผู้ใช้ฐานข้อมูล

DATAACCESS: อนุญาตให้เข้าถึงข้อมูลที่จัดเก็บในตารางฐานข้อมูล

DBADM: ทำหน้าที่เป็นผู้ดูแลระบบฐานข้อมูล มันให้หน่วยงานฐานข้อมูลอื่น ๆ ทั้งหมดยกเว้น ACCESSCTRL, DATAACCESS และ SECADM

EXPLAIN: อนุญาตให้อธิบายแผนการสืบค้นโดยไม่ต้องให้พวกเขาถือสิทธิ์ในการเข้าถึงข้อมูลในตาราง

IMPLICIT_SCHEMA: อนุญาตให้ผู้ใช้สร้างสคีมาโดยปริยายโดยการสร้างวัตถุโดยใช้คำสั่ง CREATE

LOAD: อนุญาตให้โหลดข้อมูลลงในตาราง

QUIESCE_CONNECT: อนุญาตให้เข้าถึงฐานข้อมูลในขณะที่อยู่ในโหมด quiesce (ปิดใช้งานชั่วคราว)

SECADM: อนุญาตให้ทำหน้าที่เป็นผู้ดูแลระบบความปลอดภัยสำหรับฐานข้อมูล

SQLADM: อนุญาตให้ตรวจสอบและปรับแต่งคำสั่ง SQL

WLMADM: อนุญาตให้ทำหน้าที่เป็นผู้ดูแลปริมาณงาน

สิทธิพิเศษ

SETSESSIONUSER

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

สิทธิ์ของสคีมา

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

  • CREATEIN: อนุญาตให้สร้างวัตถุภายในสคีมา
  • ALTERIN: อนุญาตให้แก้ไขวัตถุภายในสคีมา

DROPIN

สิ่งนี้อนุญาตให้ลบอ็อบเจ็กต์ภายในสคีมา

สิทธิ์ Tablespace

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

ตารางและดูสิทธิพิเศษ

ผู้ใช้ต้องมีสิทธิ์ CONNECT บนฐานข้อมูลจึงจะสามารถใช้ตารางและสิทธิ์ดูได้ สิทธิพิเศษสำหรับตารางและมุมมองมีดังต่อไปนี้:

ควบคุม

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

แก้ไข

อนุญาตให้ผู้ใช้แก้ไขตาราง

ลบ

ช่วยให้ผู้ใช้สามารถลบแถวจากตารางหรือมุมมอง

ดัชนี

ช่วยให้ผู้ใช้สามารถแทรกแถวลงในตารางหรือมุมมอง นอกจากนี้ยังสามารถเรียกใช้ยูทิลิตี้นำเข้า

ข้อมูลอ้างอิง

อนุญาตให้ผู้ใช้สร้างและวางคีย์ต่างประเทศ

เลือก

ช่วยให้ผู้ใช้ดึงข้อมูลแถวจากตารางหรือมุมมอง

อัปเดต

ช่วยให้ผู้ใช้สามารถเปลี่ยนรายการในตารางดู

สิทธิพิเศษของแพ็คเกจ

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

ควบคุม

ช่วยให้ผู้ใช้มีสิทธิ์ในการ rebinding วางหรือเรียกใช้แพ็คเกจ ผู้ใช้ที่มีสิทธิ์นี้จะได้รับสิทธิ์ BIND และ EXECUTE

ผูก

อนุญาตให้ผู้ใช้ผูกหรือผูกแพ็กเกจนั้นใหม่

ดำเนินการ

อนุญาตให้เรียกใช้แพ็คเกจ

สิทธิ์ดัชนี

สิทธิ์นี้จะได้รับสิทธิ์ CONTROL บนดัชนีโดยอัตโนมัติ

สิทธิ์ตามลำดับ

ลำดับจะได้รับสิทธิ์ USAGE และ ALTER ในลำดับโดยอัตโนมัติ

สิทธิพิเศษประจำ

มันเกี่ยวข้องกับการดำเนินการของกิจวัตรเช่นฟังก์ชันขั้นตอนและวิธีการภายในฐานข้อมูล